使用c静态链接libcurl

时间:2011-09-02 06:05:08

标签: c curl gnu static-linking

我在Linux机器上使用C和GNU编译器在我的应用程序中使用Libcurl。 应用程序还使用OpenSSL库和一些其他库。我试图静态链接库,除了lcurl链接与其他库工作正常。

我正在尝试编译如下。

gcc -static -I. -o test test.c -lz -lssl -lcrypto -lcurl

我做错了吗? 有没有办法强制一些图书馆的静态链接(例如libc)?

1 个答案:

答案 0 :(得分:3)

Libcurl本身与其他库的 ton 相关联,其中大多数库未包含在您的编译命令行中。例如,我的(在Debian Squeeze上)链接:

  • 的libc
  • libcom_err
  • libcrypto
  • libdl
  • libgcrypt
  • libgnutls
  • 的libgpg误差
  • libgssapi_krb5
  • 的libidn
  • libk5crypto
  • libkeyutils
  • libkrb5
  • libkrb5support
  • liblber-2.4
  • libldap_r-2.4
  • 的libpthread
  • libresolv库
  • librt
  • libsasl2
  • libssh2
  • 的libssl
  • libtasn1
  • libz进行

(您可以通过在Linux上的库中运行ldd或在Darwin上运行otool -L来获得类似的列表。)