不使用“整个程序优化” / GL和“链接时间代码生成” / LTCG会有什么弊端/陷阱

时间:2019-04-07 07:59:25

标签: c++ visual-studio static-libraries

在我的项目(这是一个影响性能的框架)中,我正在使用几个静态库。构建这些静态库时,我对其配置有两种选择:

  1. 启用“整个程序优化” /GL和“链接时间代码生成” /LTCG,并将我的框架的发布版本限制为(开箱即用)与特定版本的平台工具集一起使用(假设“ Visual Studio 2017(v141)”)。尝试使用v141预先构建的库在Visual Studio 2019(v142)中构建框架,导致出现错误消息,例如“ [...]是使用比其他对象更旧的编译器创建的;重建旧的对象和库“ 。这里唯一的选择是使用v142重新构建库,但是之后它们将无法再用于v141。
  2. 为库禁用/GL/LTCG,其效果是它们可以与许多不同的平台工具集(例如v141,v142等)一起使用。

我的问题是:第二种选择是否有任何弊端或隐患,还是一种有效的方法?如果在运行时对库进行大量调用该怎么办?会出现性能问题吗?

0 个答案:

没有答案