2014-01-18 68 views
0

我遵循這個postEclpse CDT GTEST安裝錯誤:無法找到-lgtest

設置GTEST 1.7對Eclipse CDT的8.2.1.but得到這個錯誤:

....test/AllTests.bc src/Test.bc -lgmock -lgtest -lpthread -lstdc++ 
/usr/bin/ld: cannot find -lgmock 
/usr/bin/ld: cannot find -lgtest 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
Info: Parallel threads used: 3 

順便說一句,有一些變化,從GTEST 1.5到1.7,其實我做鏈接是這樣的:

sudo ln -s lib/.libs/libgtest.a /usr/lib/libgtest.a 

正如你所看到的,libgtest正在gtest1.7/lib中/的.lib(第二隱藏目錄)不gtest1.7/lib目錄。 那我做錯了什麼?

回答

2

您似乎試圖使符號鏈接到libgtest.alibgmock.a通過使用命令:

sudo ln -s lib/.libs/libgtest.a /usr/lib/libgtest.a 
sudo ln -s lib/.libs/libgmock.a /usr/lib/libgmock.a 
分別

從控制檯/your/path/to/gtest-1.7.0/your/path/to/gmock-1.7.0

如果您在文件管理器中打開/usr/lib,找到鏈接libgtest.alibgmock.a和考試的性質,我相信你會發現, 這些鏈接被破壞,這就是爲什麼鏈接器無法在您的項目找到他們 。您的ln命令爲其目標提供相對路徑, 但需要絕對路徑。

如果是這樣,請刪除損壞的鏈接,並命令他們重建:

sudo ln -s /full/path/to/gtest-1.7.0/lib/.libs/libgtest.a /usr/lib/libgtest.a 
sudo ln -s /full/path/to/mock-1.7.0/lib/.libs/libgmock.a /usr/lib/libgmock.a 

E.g我的系統上/full/path/to/ = /home/imk/develop/

那麼我認爲您的構建會工作。

但是,在/usr/lib中創建這些符號鏈接會稍微污染您的 系統安裝。在/usr/local/lib中創建它們會更好。 或者更簡單,你只需要添加這些靜態庫的目標文件 爲您的項目鏈接:

  • 在Eclipse中,導航項目 - >屬性 - >C/C++建立 - >設置 - >你的編譯器鏈接 - >和刪除gmock.agtest.a

  • 立即下你找到其他。有,在 其他對象,add:

    /full/path/to/libgtest。一個

    /full/path/to/libgmock.a

所有這些建議都爲我工作。

相關問題