我遵循此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。 那我做错了什么?
答案 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.a
,gtest.a
在图书馆下,您会找到其他。那里,在 其他对象,添加:
/full/path/to/libgtest.a
/full/path/to/libgmock.a
所有这些建议都对我有用。