c++ - 在可执行文件中禁用优化并将它们维护在静态库中

标签 c++ optimization visual-studio-2005 linker intel

我遇到了一个奇怪的情况,我(假定的)代码链接知识让我失望了......

我遇到了一个错误,该错误仅发生在启用了优化(/O2、/O3 或/Ox)的 64 位版本中。该错误发生在对性能不重要的可执行文件中,我们必须尽快(即星期一)提供原型(prototype)演示。由于让这个演示工作的巨大压力,我有了一个主意;在打开优化的情况下构建静态库(这对性能至关重要)并在可执行文件中将其关闭。这应该隐藏错误,直到我修复它而不减慢系统速度,或者我是这么想的。

我现在已经尝试过关闭和打开链接时间代码生成,并且没有对整个程序进行优化,但是每次使用 VS2005 C++ 编译器以及使用英特尔编译器时,性能关键库都没有被与启用的优化相关联,事情会急剧减慢。

有谁知道如何完成我在这里的目标吗?这是一个奇怪的情况,我从来没有不得不处理它,但我做了一些阅读,我找不到任何文件说我试图完成的事情是不可行的,但显然它不是或者我失踪了某物。预先感谢你们提供的任何帮助,我知道这是一个肮脏的短期“修复”的奇怪请求,但这相当重要。

最佳答案

您的问题几乎可以肯定是您的库或标准库中的关键函数内联在最终应用程序中通过关闭优化被禁用。

关于c++ - 在可执行文件中禁用优化并将它们维护在静态库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534505/

相关文章:

短类型的 C++ 溢出

c# - 如何轻松地重新排序 TabControl?

.net - 无法获得对 ConfigurationManager 的引用

c++ - 读\写 boost::binary_oarchive 到管道

c++ - 将 istream 传递给函数

c++ - 从网页获取 XML

c++ - 将 Scons 文件转换为 VisualStudio 项目文件

c++ - 在 C++ 中保存和加载大数组

php - 计算每行中真值的个数

c# - foreach 中的 Linq 优化