添加符号 libgtest.so 错误:命令行中缺少 DSO
libgtest.so error adding symbols: DSO missing from command line
我一直在使用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。最糟糕的版本是 release-1.8.0,和我以前一样。
这些库位于/usr/lib 中,相应的包含文件夹也已复制到/usr/include 中。我确保这个位置在我的ld路径中,这不是问题所在。
我的编译器是 g++ v7.3.0,我用来编译测试的命令是:
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测试了相同的过程,并出现了同样的问题。
你缺少链接lib -lgtest
相关文章:
- 从命令行c++发送文本文件名
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 数组长度,为什么从命令行获取时不能使用它?
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 添加符号 libgtest.so 错误:命令行中缺少 DSO
- libstdc++.so.6:添加符号时出错:命令行中缺少 DSO
- C 实现CNN错误添加符号:命令行中缺少DSO
- libopencv_core.so.2.4:错误添加符号:命令行中缺少DSO
- Lib Poco:DSO在命令行中丢失
- openCV 2.4.7 添加符号时出错:命令行中缺少 DSO
- Opencv,命令行 collect2 中缺少 DSO:错误:ld 返回 1 个退出状态
- glfw3错误:命令行中缺少DSO
- 添加符号时出错:命令行中缺少DSO
- 命令行中缺少DSO(使用CMake)
- 命令行中缺少DSO
- 未定义对符号的引用,命令行中缺少DSO
- 错误:对cv:: videoccapture::~ videoccapture()的引用符号未定义,命令行中缺少DSO