Ho un semplice file di prova, TestMe.cpp:Test Con Google da Qt in Windows
#include <gtest/gtest.h>
TEST(MyTest, SomeTest) {
EXPECT_EQ(1, 1);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Ho Google prova costruito come una libreria statica. (Posso fornire il makefile se è rilevante.)
posso compilare TestMe.cpp da una riga di comando senza alcun problema:
g++ TestMe.cpp -IC:\gtest-1.5.0\gtest-1.5.0\include -L../gtest/staticlib -lgtest -o TestMe.exe
viene eseguito come previsto.
Tuttavia, non riesco a farlo compilare in Qt. Il mio file di progetto Qt, nella stessa directory:
SOURCES += TestMe.cpp
INCLUDEPATH += C:\gtest-1.5.0\gtest-1.5.0\include
LIBS += -L../gtest/staticlib -lgtest
Questo si traduce in 17 errori "simbolo esterno non risolto" legati alla GTEST funzioni.
Mi sto strappando i capelli, sono sicuro che è qualcosa di semplice. Qualche idea?
Ecco alcuni dei simboli esterni che sono indefiniti:
TestMe.obj:-1: error: unresolved external symbol "public: int __thiscall testing::UnitTest::Run(void)" ([email protected]@[email protected]@QAEHXZ) referenced in function _main
TestMe.obj:-1: error: unresolved external symbol "public: static class testing::UnitTest * __cdecl testing::UnitTest::GetInstance(void)" ([email protected]@[email protected]@[email protected]) referenced in function _main
TestMe.obj:-1: error: unresolved external symbol "void __cdecl testing::InitGoogleTest(int *,char * *)" ([email protected]@@[email protected]) referenced in function _main
TestMe.obj:-1: error: unresolved external symbol "public: __thiscall testing::internal::AssertHelper::~AssertHelper(void)" ([email protected]@[email protected]@[email protected]) referenced in function "private: virtual void __thiscall MyTest_SomeTest_Test::TestBody(void)" ([email protected][email protected]@EAEXXZ)
Un elenco di simboli esterni sarebbe d'aiuto. – Michael
@ Michael: alcuni dei simboli non risolti sono ora inclusi nella domanda. Se hai qualche idea, fammi sapere. –