2011-03-13 30 views
2

我看了Netbeans論壇,gtest wiki &在這裏附近&我似乎無法找到一種方法讓NetBeans(6.9.1,Windows 7x64)正常工作。我的gtest.h的#include或unittest文件本身沒有問題 - ASSERT_LE被識別等。我正在使用cygwin &結果與gtest在c:\ gtest-1.5.0或cygwin/usr /本地/ GTEST-1.5.0。我認爲這可能是獲得一個不同的生成文件的問題,基於gtest包括的makefile使用&,但這並沒有爲我工作(也許我做錯了)。這是我所得到的,當我按下Alt-F6(測試項目):如何在Windows Netbeans中設置gtest?


g++.exe  -o build/Debug/Cygwin-Windows/tests/TestFiles/f1 build/Debug/Cygwin-Windows/tests/tests/Armor_unittest.o build/Debug/Cygwin-Windows/tests/tests/newsimpletest.o build/Debug/Cygwin-Windows/main_nomain.o build/Debug/Cygwin-Windows/Character_nomain.o build/Debug/Cygwin-Windows/Map_nomain.o build/Debug/Cygwin-Windows/Armor_nomain.o build/Debug/Cygwin-Windows/Weapon_nomain.o build/Debug/Cygwin-Windows/Shop_nomain.o build/Debug/Cygwin-Windows/Enemy_nomain.o 
build/Debug/Cygwin-Windows/tests/tests/Armor_unittest.o: In function `_ZN31ArmorTest_SetupAndGetWorks_Test8TestBodyEv': 
/cygdrive/c/Users/.../winPro2Game/tests/Armor_unittest.cpp:9: undefined reference to `testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type, char const*, int, char const*)' 
/cygdrive/c/Users/.../winPro2Game/tests/Armor_unittest.cpp:9: undefined reference to `testing::internal::AssertHelper::operator=(testing::Message const&) const' 
/cygdrive/c/Users/.../winPro2Game/tests/Armor_unittest.cpp:9: undefined reference to `testing::internal::AssertHelper::~AssertHelper()' 
/cygdrive/c/Users/.../winPro2Game/tests/Armor_unittest.cpp:9: undefined reference to `testing::internal::AssertHelper::~AssertHelper()' 

等等

如果我把一個定製的makefile文件幾乎是等同於一個包含GTEST進入test文件夾&右鍵單擊它&製作我得到:

Makefile:21: target `gtest-all.o' doesn't match the target pattern 
Makefile:25: target `gtest_main.o' doesn't match the target pattern 
Makefile:39: *** multiple target patterns. Stop. 

如果我做的測試項目,我再次得到:


rm -f build/Debug/Cygwin-Windows/tests/tests/Makefile.o.d 
g++.exe -c -g -I../../../../../../../gtest-1.5.0/include -MMD -MP -MF build/Debug/Cygwin-Windows/tests/tests/Makefile.o.d -o build/Debug/Cygwin-Windows/tests/tests/Makefile.o tests/Makefile 
g++: tests/Makefile: linker input file unused because linking not done 
gcc.exe build/Debug/Cygwin-Windows/tests/tests/Makefile.o -o build/Debug/Cygwin-Windows/tests/tests/Makefile 
gcc: build/Debug/Cygwin-Windows/tests/tests/Makefile.o: No such file or directory 
gcc: no input files 
make[1]: *** [build/Debug/Cygwin-Windows/tests/tests/Makefile] Error 1 
make[1]: Leaving directory `/cygdrive/c/Users/.../winPro2Game' 
make: *** [.build-tests-impl] Error 2 

謝謝!

回答

0

您首先關閉 - 從「未定義參考」的第一個片段看,這是一個鏈接器配置問題 - 您沒有添加gtest庫。據我所知,gtest不提供二進制文件,所以你必須自己編譯庫(gtest.lib),然後在鏈接器屬性的某個地方作爲附加庫添加 - 不是netbeans用戶,我自己也不能確切地說哪裏。