如何解决作为lib进行构建会使调试配置慢得多
我在VS2017专业版15.9.7中有一个项目。 该项目生成的输出是program.exe。
我已将其重命名并更改为创建静态库program.lib。我将program.lib的配置与之前创建的program.exe的配置保持非常相似。 这里有旧的program.exe和新的program.lib的配置标志(请忽略我刚刚创建的路径):
/Yu"stdafx.h" /MP /GS- /W4 /Gy /Zc:wchar_t /I"...my includes" /Zi /Gm- /Od /Fd"Debug\vc141.pdb" /Zc:inline /fp:fast /D "USE_EIGEN" /D "EIGEN_FAST_MATH" /D "EIGEN_NO_AUTOMATIC_RESIZING" /D "VISUALSTUDIO=100" /D "_DEBUG" /D "WIN64" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /arch:AVX /Gd /MTd
/openmp /std:c++17 /FC /Fa"Debug\" /EHa /nologo /Fo"Debug\" /Fp"Debug\program.pch" /diagnostics:classic
这些是链接器的标志:
/OUT:"program.exe" /MANIFEST /NXCOMPAT /PDB:"program.pdb" /DYNAMICBASE "program.lib" "....my libs" /STACK:"32768"",32768" /DEBUG /MACHINE:X64 /OPT:REF /INCREMENTAL:NO /PGD:"program.pgd"/SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"program.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"...my libpaths" /TLBID:1
然后,我仅使用该库来创建一个新的exe program1.exe。我保留了与以前相同的配置标志。
一切正常,发行版中内置的program1.exe的速度与program.exe的速度相同,但是如果我从Visual Studio调试运行新的program1.exe,速度会慢很多,因此不再可用。因此,在这种情况下,调试速度很重要。
释放速度保持不变。
为什么?
有什么想法可以使其更快?
解决方法
一切正常,但是如果我从调试中运行新的program1.exe 视觉工作室要慢得多。
这很奇怪,您可以尝试执行以下步骤来解决问题:
1)关闭VS,删除两个项目的solution文件夹下的.vs
和bin
文件夹下的obj
隐藏文件夹。
2)确保两个项目使用与X64/Debug
类似的平台和配置。
3)单击工具-> 选项-> 下的空符号缓存选项调试-> 符号,然后单击Load only specified modules
。
并尝试取消选中工具-> 选项-> 调试-> 常规下的Enable Diagnostic Tools while debugging
。
4),如果某些扩展引起此行为,请禁用工具-> 扩展和更新下的任何第三方扩展。
5)在工具-> 导入和导出设置-> 重置所有设置检查是否有一些晦涩的额外设置导致此问题。而且,您还可以在进行备份之前进行备份。
此外,如果您的 VS2017 是 Enterprise ,请取消选中Enable IntelliTrace
下的Tools
选项- > Options
-> IntelliTrace
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。