由于Google Test网页上基本上没有文档,我该怎么做呢?到目前为止我做了什么:
- 我从项目页面下载了googletest1.6,并在里面做了
./configure && make
- 我在编译器/链接器标志中添加了
-Igtest/include
-Lgtest/lib
- 我写了一个小样本测试:
#include "gtest/gtest.h"
int main(int argc, char **args)
{
return 0;
}
TEST(someTest,testOne)
{
ASSERT_EQ(5,5);
}
这编译得很好,但是链接器似乎一点也不觉得有趣。我得到了一大堆错误消息,样式为
测试/主命令:在函数someTest_testOne_Test::TestBody()': main.cpp:(.text+0x96): undefined reference to
中测试::内部::Assert帮助器::Assert帮助器(测试::测试部分结果::类型,字符常量 *,整数,字符常量 *)'
我忘了做什么了?
4条答案
按热度按时间1rhkuytd1#
作为一个参考,我有一个
docker
系统设置与g++
和gtest
工作正常。我提供了所有的文件在这里供将来参考:停靠文件
生成文件
cpp/主pp
cpp/程序. cpp
cpp/程序_单元测试. cpp
h/程序. h
cpp/program.cpp
和h/program.h
文件来自googletest
存储库sample 1。Dockerfile
改编自here。eanckbw92#
最好的例子Makefile是the one distributed with Google Test,它向你展示了如何根据你是想使用Google的
main()
函数还是你自己的函数,将gtest_main.a
或gtest.a
链接到你的二进制文件中。kfgdxczn3#
我使用
sudo apt-get install libgtest-dev
在我的系统上安装了Google Test,而我正在使用的夹具没有main()
,可以使用以下代码构建:4nkexdtk4#
在向项目makefile添加内容之前,我希望弄清楚它实际运行的是什么命令,下面是我用来手工构建sample 1单元测试的命令列表。
g++ -c -I../包括sample1.cc
g++ -c -I../包含样品1_unittest.cc
g++ -pthread -o s1_ut示例1.o示例1_unittest.o ../lib/.libs/libgtest.a ../lib/.libs/libgtest_main.a
注意:如果你得到一堆与pthread相关的链接器错误,你可能忘记了第三个命令中的-pthread;如果你得到一堆与C运行库相关的链接器错误,你可能输入了gcc而不是g。