在Ubuntu Linux上,我一直在遵循gtest
指令给出here来安装gtest
,并分别手动将头文件和库复制到/usr/include
和/usr/lib
。如何编译gtest cpp文件?
我又试图编译下面的代码(test1.cpp
)
#include <gtest/gtest.h>
TEST(MathTest, TwoPlusTwoEqualsFour) {
EXPECT_EQ(2 + 2, 4);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
用下面的命令
g++ -lgtest -lgtest_main -lpthread test1.cpp
正好看到另一个无益的错误信息:
/usr/bin/ld: /tmp/ccQlmghI.o: undefined reference to symbol '_ZN7testing8internal9EqFailureEPKcS2_RKSsS4_b'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libgtest.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
如何我能解决这个问题吗?还是有另一个单元测试框架,可以以简单的方式使用,并有一个工作示例?
同样的问题已被要求here,但没有答案。
创建一堆新错误:/usr/lib/gcc/x86_64-linux-gnu/4.8 /../../../../ lib/libgtest.so:未定义的引用'pthread_key_create' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libgtest.so:对'pthread_getspecific'的未定义引用 /usr/lib/gcc/x86_64-linux -gnu/4.8 /../../../../ lib/libgtest.so:未定义的引用'pthread_key_delete' /usr/lib/gcc/x86_64-linux-gnu/4.8/../ .. /../../lib/libgtest.so:未定义的引用'pthread_setspecific' collect2:错误:ld返回1退出状态 – Alex 2014-11-23 16:49:48
也许pthread没有安装或什么? – Alex 2014-11-23 16:50:31
您示例中的'-pthread'是什么意思? – Alex 2014-11-23 16:51:16