2011-04-06 79 views
1

我不希望最終用戶必須安裝庫,因此,將庫包裝在我的exec中將是首選。如何將外部庫靜態鏈接到我的可執行文件中?

這是在make文件中的相關行:

hPif : src/main.o src/fann_utils.o src/hashes.o src/Config.o 
    g++ -o hPif src/main.o src/fann_utils.o src/hashes.o src/Config.o -static -lfann -lboost -L/usr/local/lib 

我試圖鏈接范文芳和提升,而我讀的地方(http://www.adp-gmbh.ch/cpp/ gcc/create_lib.html)使用-static標誌允許。

我在做什麼錯?

回答

1

-static標誌是正確的,但你需要確保你的庫是沒有依賴關係的靜態庫。如果它們構建爲共享(或共享依賴),則gcc不會靜態鏈接它們(和/或您仍然會有庫依賴關係)。

您可能需要重建您的Boost庫來實現此目的。

相關問題