我关注这个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位于gest1.7/lib/.lib(第二个隐藏目录)下,而不是gtest1.7/lib下。那么我做错了什么呢?
1条答案
按热度按时间6bc51xsx1#
您似乎已尝试使用以下命令建立指向
libgtest.a
和libgmock.a
的符号链接:分别从
/your/path/to/gtest-1.7.0
和/your/path/to/gmock-1.7.0
中的控制台。如果您在文件管理器中打开
/usr/lib
,找到链接libgtest.a
和libgmock.a
并检查它们的属性,我相信您会发现这些链接是断开的,这就是链接器在您的项目中找不到它们的原因。您的ln
命令提供了其目标的相对路径,但需要绝对路径。如果是,请删除断开的链接并使用以下命令重新创建它们:
例如,在我的系统上
/full/path/to/
=/home/imk/develop/
那么我想你的版本会起作用的。
但是,在
/usr/lib
中创建这些符号链接会稍微影响您的系统安装。最好在/usr/local/lib
中创建它们。或者更简单,您可以只将这些静态库添加到用于项目链接的对象文件中:gmock.a
、gtest.a
/Full/Path/to/libgest.a
/Full/Path/to/libgmock.a
所有这些建议对我都很管用。