只是一个简短而简单的问题, 为什么建议通过包含源文件来在每个项目中编译googletest和googlemock(而不是使用cmake扩展名为.a的库,然后将其链接到许多项目)。
来源:https://www.jetbrains.com/help/clion/creating-google-test-run-debug-configuration-for-test.html
答案 0 :(得分:2)
因为googletest生成的“ .a”文件会根据编译器标志的不同而有所不同。您要进行的不同测试项目可能会设置不同的项目,如果它们引用通用的googletest'.a'文件,则可能会导致问题。
来自'make install' considered harmful:
在gtest和gmock的自述文件中,我们说您可以安装 使用'make'在* nix系统上编译gtest和gmock库 安装'。这样,您的计算机上的每个用户都可以编写测试而无需 重新编译gtest或gmock。
当我们编写自述文件时,这似乎是一个好主意,但它有一个 需要注意的是:每个用户都需要使用相同的编译器来编译其测试 用于编译已安装的gtest / gmock库的标志;除此以外 他可能会遇到不确定的行为(即测试可以 奇怪,甚至可能由于没有明显的原因而崩溃)。