【发布时间】:2012-03-27 18:46:57
【问题描述】:
//to-long-didnt-read -> missing lgssapi_krb5 library and can't seem to find it
我在使用其中一个测试应用程序静态链接 libcurl 时遇到问题。
我读过论坛,有人说发出“curl-config --libs”命令并包含所有这些库,但该命令只返回
~/Desktop# curl-config --libs
-lcurl
他们的归来
[root@zabbix ~]# curl-config --libs
-L/usr/kerberos/lib -lcurl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lresolv -ldl -lidn -lssl -lcrypto -lz
我也看过这篇文章
Static linking libcurl using c
我的输出是
~/Desktop# ldd /usr/lib/libcurl.so
linux-gate.so.1 => (0xb78be000)
libidn.so.11 => /usr/lib/libidn.so.11 (0xb7837000)
liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0xb782a000)
libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0xb77e2000)
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb77d9000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb77aa000)
libz.so.1 => /lib/libz.so.1 (0xb7795000)
libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0xb76fa000)
libgcrypt.so.11 => /lib/libgcrypt.so.11 (0xb7686000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb752c000)
libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0xb7518000)
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb7500000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb74e7000)
/lib/ld-linux.so.2 (0xb78bf000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb7436000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7411000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0xb740d000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb7405000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7401000)
libkeyutils.so.1 => /lib/libkeyutils.so.1 (0xb73fd000)
libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0xb73eb000)
libgpg-error.so.0 => /lib/libgpg-error.so.0 (0xb73e6000)
当我尝试使用
进行编译时~/Desktop# gcc -static test.c -o down -lcurl -lidn -llber -lldap -lrt -lgssapi_krb5 -lgssapi_krb5 -lz -lgnutls -lgcrypt
我明白了
/usr/bin/ld: cannot find -lgssapi_krb5
collect2: ld returned 1 exit status
我试过四处搜索这个图书馆,但我似乎无法通过谷歌搜索找到它。我也尝试过 apt-get 缓存搜索它,但它没有返回任何结果。我正在运行 Ubuntu,非常感谢任何帮助。
【问题讨论】:
-
你有什么理由不能使用你的 Linux 发行版打包
libcurl-dev(开发包libcurl包含头文件和库)。 -
我只是 apt-get libcurl4-gnutls-dev 并且我仍然缺少该库。我怎样才能找到我需要链接到 gcc 的所有库的名称。我可以在 libcurl.so 上使用 ldd 命令,但是如何将它们转换为 -lXXXXXX 名称。
标签: c linux static compilation libcurl