簡體   English   中英

eclipse-cdt如何與靜態庫鏈接

[英]eclipse-cdt how to link with static library

如果我在鏈接器/庫下設置庫或將它們設置在“路徑和符號”下,我很困惑。 我認為他們是一樣的。 我對么?

我的問題的任何方式 - 我需要鏈接靜態庫,所以我嘗試了幾件事:

首先嘗試我嘗試在鏈接庫中添加gtest(這是庫)和gtest路徑。 以這種方式編譯和鏈接正確,但在運行時失敗,因為當它試圖加載共享庫( 我想要靜態庫! )錯誤是

加載共享庫時出錯:libgtest.so.0

第二次嘗試 - 我嘗試在路徑和符號中定義它添加到庫的完整路徑'/root/workspace/gmock/gtest/lib/.lib/libgtest.a'。 在這種情況下,我在鏈接中出錯:

g++ -L/root/workspace/gmock/lib/.libs -L/root/workspace/gmock/gtest/lib/.libs -o "playground"  ./src/p.o ./src/playground.o   -lpthread -l/root/workspace/gmock/gtest/lib/.lib/libgtest.a -l/root/workspace/gmock/lib/.lib/libgmock.a
/usr/bin/ld: cannot find -l/root/workspace/gmock/gtest/lib/.lib/libgtest.a

這個帖子 dosnt給出了答案,並沒有解釋你如何定義與靜態vs共享的不同鏈接。

謝謝

經過大量的研究而沒有相關的答案。 找到了!!! 我在eclipse-cdt的這個有用鏈接中找到了它

顯然,庫需要存在於工作空間中。

將庫路徑/文件添加到:屬性 - C / C ++生成 - 設置 - GCC C ++鏈接器 - 其他 - 其他對象

我將Botan加密庫構建為靜態庫,原因我不想進入這里,當我按照互聯網上的所有步驟進行操作時,添加庫路徑並指定庫名而不使用“lib”和“。一個“,我的項目建立得很好,但是,當我運行它時,我不斷得到”程序意外終止“(或類似)錯誤。 最后我想出了如何解決它。 在菜單欄中,轉到項目>屬性> C / C ++生成>設置>交叉G ++鏈接器,並在${COMMAND}${FLAGS}之間添加-static ,因此整行看起來像:

${COMMAND} -static ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}

你的可能會有所不同。 我正在使用Eclipse Luna Service Release 2(4.4.2),在Windows 8.1上使用mingw-w64 mingw-builds項目w / gcc 4.9.2。

暫無
暫無

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

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