2016-10-10 99 views
0

我试图编译一个程序,静态使用pthreadcurl。在尝试链接kerberos库时遇到一些错误。 Openssl版本是OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008。这是gcc命令:GCC链接kerberos静态编译CURL

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

OS:

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/重新安装它,然后试图链接它,同样的错误。

什么问题?

+0

请注意,如果您需要执行一些可以获得的“常规”HTTP/HTTPS请求(无特殊协议,无复杂的身份验证方案),cURL可能会支持许多您可能不需要支持的协议/选项用少一些的依赖关系;几乎只有在需要使用NTLM身份验证执行对Windows服务器进行身份验证的HTTP请求时才需要Kerberos IIRC,这些东西我甚至不确定IE以外的许多浏览器都可以执行。如果这不是您的实际使用案例,您可以考虑将其退出。 –

回答

0

麻省理工学院的软件包中还有一个名为libkrb5support的库,在执行类似任务时,我必须将其包含在链接器中。我必须包括5个图书馆,其他四个。麻省理工学院分布中的不同库的数量令人生气。