为什么建议包含googletest源文件

时间:2019-03-19 09:32:38

标签: c++ cmake googletest googlemock

只是一个简短而简单的问题, 为什么建议通过包含源文件来在每个项目中编译googletest和googlemock(而不是使用cmake扩展名为.a的库,然后将其链接到许多项目)。

来源:https://www.jetbrains.com/help/clion/creating-google-test-run-debug-configuration-for-test.html

1 个答案:

答案 0 :(得分:2)

因为googletest生成的“ .a”文件会根据编译器标志的不同而有所不同。您要进行的不同测试项目可能会设置不同的项目,如果它们引用通用的googletest'.a'文件,则可能会导致问题。

来自'make install' considered harmful

  

在gtest和gmock的自述文件中,我们说您可以安装   使用'make'在* nix系统上编译gtest和gmock库   安装'。这样,您的计算机上的每个用户都可以编写测试而无需   重新编译gtest或gmock。

     

当我们编写自述文件时,这似乎是一个好主意,但它有一个   需要注意的是:每个用户都需要使用相同的编译器来编译其测试   用于编译已安装的gtest / gmock库的标志;除此以外   他可能会遇到不确定的行为(即测试可以   奇怪,甚至可能由于没有明显的原因而崩溃)。