我正在尝试构建一个 googletest 单元测试,以作为我们可能使用的新单元测试框架的概念证明。在 googletest 中,有两种编写单元测试的方法:使用 main 或不使用 main。如果您没有定义 main,您可以链接到 gtest_main 库,其中包含一个 main() 函数,为您节省一些时间。在我的环境中,我们使用 Jam 构建二进制文件。我已经在我的代码中使用 main() 编译二进制文件并使用 libgtest 库,但我正在寻找如何在没有 main 的情况下在 Jam 中构建它。
基本情况(带有 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 ;
我收到许多与未定义的 blah 引用有关的链接器错误。未定义的引用似乎来自 testing::internal 命名空间,这不是我的代码的一部分。
关于如何解决这个问题的任何想法,或者寻找更多关于这个问题的线索?