我正在嘗試爲概念驗證構建一個googletest單元測試,作爲我們可能使用的新單元測試框架。在googletest中,有兩種編寫單元測試的方法:用main或者沒有main。如果你沒有定義一個main,你可以鏈接到gtest_main庫,它包含一個main()函數,爲你節省了一些時間。在我的環境中,我們使用Jam來構建二進制文件。我已經通過使用libgtest庫在代碼&中得到了使用main()編譯的二進制文件,但是我正在尋找如何在沒有main的情況下在Jam中構建它。如何使用帶有Jam的gtest_main庫構建googletest單元測試?
基本情況(帶有main()函數):
我能夠建立與此二進制:
Main MyUnitTestBinary : MyClass.cpp ;
LinkLibraries MyUnitTestBinary : libgtest ;
Library libgtest : $(GTEST_DIR)/src/gtest-all.cc ;
破碎的情況下(沒有main()函數):
我不能用這個建立一個二進制文件。我看到許多錯誤,當我試圖將對象鏈接:
Main sample1_unittest : sample1.cc sample1_unittest.cc ;
LinkLibraries sample1_unittest : gtest_main ;
Library gtest_main : $(GTEST_DIR)/src/gtest_main.cc ;
我得到有關未定義的引用等等許多鏈接器錯誤。未定義的引用似乎來自testing :: internal命名空間,它不是我的代碼的一部分。
想法如何攻擊這個問題,或者尋找更多關於這個問題的線索?
我也越來越鏈接錯誤「GTEST未定義的引用regfreeA」和「GTEST未定義參考regexecA」。感謝您發佈您的解決方案! – pmont 2013-06-24 20:17:03