在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