我已經下載了OpenSSL二進制文件。我想在Ubuntu中爲我的C++程序創建一個靜態庫。 這意味着它們在同一個目錄中。如何爲我的程序創建一個靜態庫?
http://www.openssl.org/source/
我已經下載了OpenSSL二進制文件。我想在Ubuntu中爲我的C++程序創建一個靜態庫。 這意味着它們在同一個目錄中。如何爲我的程序創建一個靜態庫?
http://www.openssl.org/source/
添加-static
參數gcc
當你鏈接。我希望你想靜態二進制沒有任何動態加載庫。在其他情況下,將libssl.a
的完整路徑作爲目標文件添加到您的編譯系統中。你還沒有指定你將如何構建你的應用程序。
手動,你會使用類似:
gcc -o application yourcode.c yourcode2.c /usr/lib/libssl.a
或更好
gcc -static -o application yourcode.c yourcode2.c -lssl
爲Linux下載的二進制是在大多數情況下壞主意。如果你想要靜態二進制,這應該有所幫助。如果您需要自定義構建具有特殊功能的庫,則需要自行從源下載並構建該庫。
無論如何,類似的問題在這裏回答在這裏Static link of shared library function in gcc 你也可以檢查Linux static linking is dead?發現有可能有太多的問題,甚至考慮靜態鏈接。
如果您需要了解Linux下鏈接的詳細信息,在http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
的OpenSLL靜態庫,或者另外一個檢查不錯的教程? – Linuxios 2012-08-01 13:17:25
@Linuxios更新了鏈接 – mister 2012-08-01 13:48:34
爲什麼不從Ubuntu靜態鏈接'libssl.a'? – 2012-08-01 13:51:08