Debian 8 上的链接问题

Linking issue on Debian8

我正在尝试为 debian 8 重新编译我的软件,但我 运行 遇到了 libgssappi 拒绝 link 任何东西的奇怪问题。

>~/torque_github$ gcc test.c -lgssapi
/usr/bin/ld: cannot find -lgssapi
collect2: error: ld returned 1 exit status

库存在于系统中,如下所示:

>~/torque_github$ /sbin/ldconfig -p | grep gssapi
        libgssapi_krb5.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2
        libgssapi.so.3 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgssapi.so.3

在我的 Debian/Jessie/x86-64 系统上,/usr/lib/x86_64-linux-gnu/libgssapi_krb5.solibkrb5-dev 包提供(根据 dpkg -S),/usr/lib/x86_64-linux-gnu/libgssapi.so.3 由 [=15] 提供=] 包(我没有任何 libgssapi*dev 包)。

您可能应该安装它们(使用 sudo aptitude install libkrb5-dev libgssapi3-heimdal 命令),并使用 pkg-configkrb5-gssapi 来获取编译和链接标志。

gcc -Wall -g $(pkg-config --cflags krb5-gssapi) \
   test.c \
   $(pkg-config --libs krb5-gssapi) \
   -o myprog

(如果某些 API 已更改,您可能必须更改 test.c 源代码;也许您需要 #include <krb5/krb5.h>

您甚至可以使用 gcc -v 而不是上面的 gcc

请记住 gcc 的参数顺序非常重要。您最初的问题有不同的顺序(这足以使 gcc 失败)!