libgtest.so错误添加符号:命令行缺少DSO

时间:2018-09-12 23:40:09

标签: c++ compiler-errors linker-errors googletest

我一直在使用gtests对个人项目进行单元测试。上周,我升级到了Linux Mint的LTS版本。不幸的是,在那次事件之后,由于gtests链接问题,我无法编译我的项目。

正在发出以下错误:

/usr/bin/x86_64-linux-gnu-ld: build/tests/policies/roundrobin_tests.o: undefined reference to symbol '_ZN7testing4TestC2Ev'
/home/myuser/Documents/googletest-release-1.8.0/googletest/libgtest.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

我已经通过CMake 3.10.2生成了 libgtest.so libgtest_main.so 。 gtest版本是1.8.0版,与我以前使用的相同。

这些库位于/ usr / lib中,并且相应的include文件夹也已复制到/ usr / include。我确定这个位置在我的ld路径中,那不是问题。

我的编译器是g ++ v7.3.0,Im用于编译睾丸的命令是:

g++ -std=c++14 -Wall -O3 -Iinclude build/tests/policies/roundrobin_tests.o -lgtest_main -pthread -o bin/policies/roundrobin_tests

我尝试更改命令中元素的顺序,显式添加-L / usr / lib和-I / usr / include,但不走运。一个有趣的事实是,如果我取消了-pthread标志,则错误仍然相同。

之前使用了相同的命令,唯一的区别是我现在使用的编译器版本与以前使用g ++ 5.4.0的版本相同。有关如何解决此问题的任何见解?

编辑:刚刚使用g ++ 5.4.0和CMake 3.5测试了相同的过程,并出现了相同的问题。

0 个答案:

没有答案