假設我有一個文件main.cpp
,它使用sin()
函數,該函數在libmath
中定義。另外假設我們在同一個目錄中都有libmath.a和libmath.so。現在,如果我發出命令g++ -o main main.cpp -lmath
,Linux的默認行爲是鏈接到共享庫libmath.so
。我想知道是否有辦法強制程序與靜態庫libmath.a
鏈接而不刪除或移動共享庫?當存在同名的共享庫時,如何強制與靜態庫鏈接
25
A
回答
20
您需要將-static傳遞給鏈接器,但僅限於您需要的特定庫。例如:
g++ -o main main.cpp -Wl,-Bstatic -lmath -Wl,-Bdynamic
+3
我認爲你的意思是「-Bstatic」而不是「-static」。太糟糕的單字符編輯是不允許的... – 2011-08-31 07:13:53
4
使用此功能:
g++ -o main main.cpp /path_to/libmath.a
8
如果你的鏈接器支持-l:<filename>
你可以使用:
g++ -o main main.cpp -l:libmath.a
相關問題
- 1. 鏈接共享對象與靜態庫
- 2. 鏈接一個共享庫靜態到我的共享庫
- 3. 鏈接靜態庫,共享另一個靜態庫
- 4. g ++鏈接器:如果靜態庫存在,強制靜態鏈接?
- 5. 如何在Qt Creator的共享庫中建立靜態鏈接?
- 6. 如何在靜態庫中使用共享庫而不強制最終用戶鏈接到這些庫?
- 7. 如何將共享庫與其他共享庫鏈接到Linux?
- 8. 可以在gnu makefile中對共享庫做靜態庫鏈接?
- 9. 在構建期間將靜態庫鏈接到共享庫?
- 10. 當預構建靜態和共享庫與Android NDK時鏈接問題
- 11. SCons與靜態庫(.a)共享庫(.so)
- 12. 與共享庫鏈接
- 13. 共享庫中庫函數的選擇性靜態鏈接
- 14. mxmlc中的靜態鏈接運行時共享庫
- 15. 將共享庫鏈接到共享庫
- 16. 如何使用gcc在ubuntu下製作靜態庫共享庫
- 17. C++將靜態庫鏈接到共享庫
- 18. CMake將共享庫鏈接到靜態庫
- 19. C++靜態庫可以鏈接到共享庫嗎?
- 20. 將GSL(或其他庫)靜態鏈接到共享庫中
- 21. 如何強制庫在qt創建器中靜態鏈接
- 22. 使鏈接時,gcc偏好靜態庫共享對象?
- 23. 強制鏈接到Xcode目標的庫的靜態鏈接?
- 24. 鏈接共享庫
- 25. 共享iPhone靜態庫
- 26. 如何鏈接到共享庫在c + +
- 27. 將共享庫與其他共享庫鏈接是否好?
- 28. 鏈接共享庫可執行與另一個共享庫
- 29. C++共享庫創建 - 與其他共享庫鏈接
- 30. 取決於共享庫的靜態庫
的可能的複製[G ++鏈接:強制靜態鏈接,如果靜態庫是否存在? ](http://stackoverflow.com/questions/3698321/g-linker-force-static-linking-if-static-library-exists) – 2016-04-05 13:08:48