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

7ajki6be  于 2022-09-21  发布在  Eclipse
关注(0)|答案(1)|浏览(219)

我关注这个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下。那么我做错了什么呢?

6bc51xsx

6bc51xsx1#

您似乎已尝试使用以下命令建立指向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

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

那么我想你的版本会起作用的。

但是,在/usr/lib中创建这些符号链接会稍微影响您的系统安装。最好在/usr/local/lib中创建它们。或者更简单,您可以只将这些静态库添加到用于项目链接的对象文件中:

  • 在Eclipse中,导航到[您的项目]>[属性]>[C/C++内部版本]>[设置]>[您的编译器][链接器]>[库],删除gmock.agtest.a
  • 紧接在图书馆下,您可以找到其他。在其他对象中,添加:

/Full/Path/to/libgest.a

/Full/Path/to/libgmock.a

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

相关问题