Статическое связывание libcurl с помощью c - PullRequest
4 голосов
/ 02 сентября 2011

Я использую Libcurl в своем приложении с компилятором C и GNU на машине с Linux. Приложение также использует библиотеки OpenSSL и некоторые другие библиотеки. Я пытаюсь статически связать библиотеки, за исключением lcurl связь с другими библиотеками работает нормально.

Я пытаюсь скомпилировать, как показано ниже.

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

Я что-то не так делаю? Есть ли способ принудительного статического связывания некоторых библиотек (libc для примера)?

1 Ответ

3 голосов
/ 02 сентября 2011

Libcurl сам по себе связан с ton других библиотек, большинство из которых не включены в вашу командную строку компиляции. Например, мои (в Debian Squeeze) ссылки на:

  • Libc
  • libcom_err
  • libcrypto
  • libdl
  • libgcrypt
  • libgnutls
  • libgpg ошибок
  • libgssapi_krb5
  • libidn
  • libk5crypto
  • libkeyutils
  • libkrb5
  • libkrb5support
  • liblber-2,4 * +1032 *
  • libldap_r-2,4 * * тысяча тридцать-четыря
  • libpthread
  • libresolv
  • librt
  • libsasl2
  • libssh2
  • libssl
  • libtasn1

(Вы можете получить подобный список для себя, запустив ldd в библиотеке в Linux или otool -L в Дарвине.)

...