C++ 为什么建议包含googletest源文件

C++ 为什么建议包含googletest源文件,c++,cmake,googletest,googlemock,C++,Cmake,Googletest,Googlemock,只是一个简短的问题, 为什么建议在每个项目中通过包含源文件来编译googletest和googlemock(而不是使用cmake将库存档为“.a”扩展名,然后将其链接到许多项目) 源:因为googletest生成的“.a”文件会因编译器标志的不同而不同。您要进行的不同测试项目可能会对其进行不同的设置,如果它们引用了一个通用的googletest“.a”文件,则可能会导致问题 发件人: 在gtest和gmock的自述文件中,我们说您可以安装 使用“make”在*nix系统上编译gtest和gmoc

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


源:

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

发件人:

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

当我们写自述时,这似乎是个好主意,但它有一个 Get-cha:每个用户都需要使用相同的编译器编译他的测试 用于编译已安装的gtest/gmock库的标志;否则 他可能会遇到未定义的行为(即测试可能会发生 奇怪的是,甚至可能会在没有明显原因的情况下崩溃)


这里的推荐似乎是基于一个断开的链接。谷歌测试常见问题解答不再包含这样的建议(反正我也找不到)。