I am using Libcurl in my application with C and GNU compiler on a linux machine.
Application also uses OpenSSL libraries and some other libraries. I am trying to statically link the libraries, except for lcurl
linking with other libraries works fine.
I am trying to compile as below.
gcc -static -I. -o te开发者_JAVA百科st test.c -lz -lssl -lcrypto -lcurl
Am I doing anything wrong? Is there a way to force static linking of some librairies (libc for exemple) ?
Libcurl is itself linked against a ton of other libraries, most of which aren't included in your compile command line. For instance, mine (on Debian Squeeze) links against:
- libc
- libcom_err
- libcrypto
- libdl
- libgcrypt
- libgnutls
- libgpg-error
- libgssapi_krb5
- libidn
- libk5crypto
- libkeyutils
- libkrb5
- libkrb5support
- liblber-2.4
- libldap_r-2.4
- libpthread
- libresolv
- librt
- libsasl2
- libssh2
- libssl
- libtasn1
- libz
(You can get a similar list for yourself by running ldd
on the library on Linux, or otool -L
on Darwin.)
精彩评论