簡體   English   中英

在eclipse cdt中找不到庫文件

[英]cannot not find library files in eclipse cdt

properties / C / C ++構建/設置GCC C ++鏈接器/庫

在庫(-I)下我有libbost_system libbost_filesystem ...並且在庫搜索路徑(-L)下我有/ home / etobkru / boost_1_43_0 / boostBinaries / lib

但是當我編譯時,我得到g ++ -L / home / etobkru / boost_1_43_0 / boostBinaries / lib / -o“searchDirs”./ main.o -llibboost_system -llibboost_filesystem -llibboost_regex /usr/lib/gcc/i586-suse-linux/4.1 .2 /../../../../ i586-suse-linux / bin / ld: 找不到-llibboost_system

我嘗試過libbost_system.so和libbost_system.a,但我得到了同樣的錯誤。 我做錯了什么以及為什么eclipse無法找到文件。 因為他們在那里?

您不需要名稱中的“lib”部分。 只需鏈接

-lboost_system -lboost_filesystem -lboost_regex

我認為這類似於/ usr / bin / ld:找不到-llibeststring.a

你試過-lboost_system嗎? -l選項不期望前導lib或尾隨.a.so

實際上經過很多挫折后我決定閱讀ld的手冊頁!

l namespec --library = namespec將namespec指定的存檔或目標文件添加到要鏈接的文件列表中。 此選項可以使用任意次。 如果namespec的格式為:filename,ld將在庫路徑中搜索名為filename的文件,否則它將在庫路徑中搜索名為libnamespec.a的文件。

因為我的特定庫是myfoobar.dll的一些東西,直到我意識到我希望ld使用實際的文件名之前沒有任何工作。 正如其他人發布截圖一樣,如何將庫添加到鏈接器,我需要做的就是將字段中的'myfoobar'更改為':myfoobar.dll',它運行正常。

您應該使用':'來確定要搜索的文件名,並遠離默認的文件名格式,如果沒有它。 希望這可以減輕挫敗感。

香酥,

我知道它有點事后,但您可以嘗試-l:libbost_system.so並且它將查找具有該名稱的庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM