Связывание GCC с kerberos для статической компиляции с CURL

#c #linux #gcc

#c #linux #gcc

Вопрос:

Я пытаюсь скомпилировать программу, которая использует pthread и curl статически. Я получаю некоторые ошибки при попытке связать с kerberos библиотекой. Версия Openssl есть OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 . Это gcc команда :

 gcc -o test2 test2.cpp utils.cpp /usr/local/lib/libcurl.a -static -lpthread -lstdc   -lcurl -lidn -lssh2 -lssl -lcrypto -ldl -lz -lrt -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -fno-stack-protector;
  

Вот результат: http://pastebin.com/D3Zp02Ea

ОС :

 cat /etc/issue
CentOS release 5.10 (Final)
Kernel r on an m
  

UNAME :

 uname -a
Linux localhost.localdomain 2.6.18-371.8.1.el5 #1 SMP Thu Apr 24 18:23:07 EDT 2014 i686 i686 i386 GNU/Linux
  

Я уже пытался переустановить его отсюда http://web.mit.edu/kerberos/dist/ , а затем попытался связать его, те же ошибки.

В чем проблема?

Комментарии:

1. Обратите внимание, что cURL включает потенциальную поддержку множества протоколов / опций, которые вам могут не понадобиться поддерживать, если все, что вам нужно, это выполнить некоторые «обычные» HTTP / HTTPS запросы (без экзотических протоколов, без сложных схем аутентификации), вы можете избежать гораздо меньших зависимостей; Kerberos, в частности IIRC, необходим почтитолько если вы хотите выполнять HTTP-запросы, аутентифицированные на сервере Windows, используя аутентификацию NTLM — материал, который я даже не уверен, что многие браузеры за пределами IE могут сделать. Если это не ваш реальный вариант использования, вы можете рассмотреть возможность его исключения.

Ответ №1:

В пакете MIT также есть библиотека libkrb5support, которую я должен был включить в свой компоновщик при выполнении аналогичной задачи. Мне пришлось включить всего 5 библиотек, у вас есть остальные четыре. Количество разных библиотек в дистрибутиве MIT сводит с ума.