我使用GoogleTest来测试我的C++项目,但在发现Ubuntu软件包中不再分发预编译库后,我在项目网站上找到了以下信息:
如果您使用不同的编译器标志编译Google Test和测试代码,则它们可能会看到相同类/函数/变量的不同定义(例如由于在Google Test中使用#if)。因此,为了您的健康,我们建议避免安装预编译的Google Test库。相反,每个项目都应该编译Google Test本身,以便可以确保对Google Test和测试使用相同的标志。
我理解的是,单独编译GoogleTest而不是与被测试项目一起编译是一个坏主意。但我不明白的是,这是否仅适用于GoogleTest,还是适用于链接库的常规情况。
问题: 是否存在任何情况下连接到预编译的第三方库是不安全的,无论是编译器标志还是其他情况?如果没有,那么GoogleTest有什么特殊之处?
如果您使用不同的编译器标志编译Google Test和测试代码,则它们可能会看到相同类/函数/变量的不同定义(例如由于在Google Test中使用#if)。因此,为了您的健康,我们建议避免安装预编译的Google Test库。相反,每个项目都应该编译Google Test本身,以便可以确保对Google Test和测试使用相同的标志。
我理解的是,单独编译GoogleTest而不是与被测试项目一起编译是一个坏主意。但我不明白的是,这是否仅适用于GoogleTest,还是适用于链接库的常规情况。
问题: 是否存在任何情况下连接到预编译的第三方库是不安全的,无论是编译器标志还是其他情况?如果没有,那么GoogleTest有什么特殊之处?