Eclipse CDT gtest安装错误:找不到-lgtest

时间:2014-01-18 08:05:57

标签: eclipse eclipse-cdt googletest gmock

我遵循此post

在eclipse cdt 8.2.1上设置gtest 1.7但是出现了这个错误:

....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。 那我做错了什么?

1 个答案:

答案 0 :(得分:2)

您似乎试图与libgtest.a建立符号链接 和libgmock.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.a链接 和libgmock.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

在我的系统上/full/path/to/ = /home/imk/develop/

然后我认为您的构建将起作用。

然而,在/usr/lib中创建这些符号链接会略微污染你的 系统安装。最好在/usr/local/lib中创建它们。 或者甚至更简单,您可以将这些静态库添加到目标文件中 为您的项目链接:

  • 在Eclipse中,导航 您的项目 - > 属性 - > C / C ++构建 - > 设置 - > 您的编译器链接器 - > 图书馆并删除gmock.agtest.a

  • 图书馆下,您会找到其他。那里,在 其他对象,添加:

    /full/path/to/libgtest.a

    /full/path/to/libgmock.a

所有这些建议都对我有用。