#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 сводит с ума.