Liaison statique avec libcurl en utilisant c

J’utilise Libcurl dans mon application avec les compilateurs C et GNU sur une machine Linux. L’application utilise également les bibliothèques OpenSSL et certaines autres bibliothèques. J’essaie de lier statiquement les bibliothèques, sauf que lcurl liaison avec d’autres bibliothèques fonctionne bien.

J’essaye de comstackr comme ci-dessous.

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

Est-ce que je fais quelque chose de mal? Existe-t-il un moyen de forcer les liens statiques de certaines bibliothèques (libc par exemple)?

Libcurl est lui-même lié à une tonne d’autres bibliothèques, dont la plupart ne sont pas incluses dans votre ligne de commande de compilation. Par exemple, le mien (sur Debian Squeeze) relie contre:

  • libc
  • libcom_err
  • libcrypto
  • libdl
  • libgcrypt
  • libgnutls
  • erreur libgpg
  • libgssapi_krb5
  • libidn
  • libk5crypto
  • libkeyutils
  • libkrb5
  • libkrb5support
  • liblber-2.4
  • libldap_r-2.4
  • libpthread
  • libresolv
  • librt
  • libsasl2
  • libssh2
  • libssl
  • libtasn1
  • libz

(Vous pouvez obtenir une liste semblable en exécutant ldd sur la bibliothèque sous Linux ou otool -L sur Darwin.)