嗨,我正在googletest和Ubuntu Linux上开发一个项目。我已经通过apt在/ lib / include / gtest中安装了所有googletest .h文件。
我的main()方法如下:
#ifdef UNITTESTING
#include <gtest/gtest.h>
int main(int argc, char** argv)
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
#endif /* UNITTESTING *
我正在日食方面发展。不幸的是,编译时出现以下错误:
Invoking: Cross G++ Linker
g++ -o "[##project##]" ./test/src/test_main.o
./test/Encoder/test_telemetry_encoder.o
./test/Decoder/test_telemetry_decoder.o ./src/crc.o ./src/main.o
./src/rfc1662_handler.o
./modules/TelemetryEncoder/src/telemetry_encoder.o
./modules/TelemetryDecoder/src/telemetry_decoder.o
./test/src/test_main.o: In Funktion »main«: [###]/Decoder/../test/src/test_main.cpp:16: Warnung: undefinierter Verweis auf »testing::InitGoogleTest(int*, char**)«
./test/src/test_main.o: In Funktion »RUN_ALL_TESTS()«:
/usr/include/gtest/gtest.h:2233: Warnung: undefinierter Verweis auf »testing::UnitTest::GetInstance()«
/usr/include/gtest/gtest.h:2233: Warnung: undefinierter Verweis auf »testing::UnitTest::Run()«
makefile:50: recipe for target '[##project##]' failed
collect2: error: ld returned 1 exit status
make: *** [[##project##]] Error 1
"make all" terminated with exit code 2. Build might be incomplete.
22:40:47 Build Failed. 5 errors, 0 warnings. (took 1s.836ms)
您知道为什么会发生这种情况吗?
我已经尝试过的:
我已将/ usr / include添加到我的包含路径。
我的编译器调用也看起来像这样:
g++ -std=c++0x -DUNITTESTING -I"[###]/modules/TelemetryEncoder/inc" -I/usr/include/gtest -I/usr/include -I"[###]/modules/TelemetryDecoder/inc" -I"[###]/inc" -I/usr/local/include -O0 -g3 -Wall -c -fmessage-length=0 -std=gnu++11 -MMD -MP -MF"test/src/test_main.d" -MT"test/src/test_main.o" -o "test/src/test_main.o" "../test/src/test_main.cpp" -lgtest -lpthread -lgtest_main
该项目确实在具有g ++的Mac OS系统上运行。我检查了What is an undefined reference/unresolved external symbol error and how do I fix it?中的解决方法,但没有一个方法适用于我(或者我已经尝试过)。我的问题似乎更具体。 我也无法通过系统上的locate找到任何libgtest.so文件。仅libgtest.a归档在目录/ usr / lib中。