2011-09-02 100 views
4

我在我的應用程序中使用Libcurl,在Linux機器上使用C和GNU編譯器。 應用程序也使用OpenSSL庫和一些其他庫。我試圖靜態鏈接庫,除了lcurl與其他庫鏈接工作正常。靜態鏈接libcurl使用c

我想編譯如下。

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

我做錯了什麼? 有沒有辦法強制某些庫的靜態鏈接(libc爲例)?

+0

是什麼你遇到的實際問題?我會猜想curl坐在另一個目錄中... –

回答

3

Libcurl自身與其他庫中的鏈接,其中大多數不包含在您的編譯命令行中。例如,礦(在Debian擠壓)鏈接反對:

  • 的libc
  • libcom_err
  • libcrypto
  • libdl
  • libgcrypt
  • libgnutls
  • 的libgpg錯誤
  • libgssapi_krb5
  • 012id
  • libidn
  • libk5crypto
  • libkeyutils
  • libkrb5
  • libkrb5support
  • liblber-2.4
  • libldap_r-2.4
  • 的libpthread
  • libresolv庫
  • librt
  • libsasl2
  • libssh2
  • 的libssl
  • libtasn1
  • libz進行

(您可以通過在達爾文運行ldd在Linux上的圖書館,或者otool -L得到類似的名單自己。)