如何在调试构建期间使 Visual Studio (2019/2022) link 成为正常的运行时库?
How to make Visual Studio (2019/2022) link to the normal runtime libraries during a debug build?
我想这样做的原因是调试库中充斥着额外的“断言”语句,这些语句在远程调试过程中需要很长时间才能开始。
我希望只是在 Code Generation
-> Runtime Library
中将 Multi-threaded Debug DLL (/MDd)
替换为 Multi-threaded DLL (/MD)
但我想知道是否还有其他更改需要考虑嗯?
这是可行的,也是远程调试大型复杂应用程序的好做法,在 Mixing debug and release library/binary - bad practice? 中也有解释。
除了将 link 库从 Multi-threaded Debug DLL (/MDd)
切换到 Multi-threaded DLL (/MD)
之外,还需要考虑像 _ITERATOR_DEBUG_LEVEL
这样的调试宏,否则在 linking 期间可能会发生冲突.指示此类冲突的典型错误消息是 error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL'
一旦所有冲突的宏都得到解决,它将 link 到标准运行时库,但应用程序的调试符号仍然存在。
另外,@Adrian Mole 感谢您在这件事上的帮助。
我想这样做的原因是调试库中充斥着额外的“断言”语句,这些语句在远程调试过程中需要很长时间才能开始。
我希望只是在 Code Generation
-> Runtime Library
中将 Multi-threaded Debug DLL (/MDd)
替换为 Multi-threaded DLL (/MD)
但我想知道是否还有其他更改需要考虑嗯?
这是可行的,也是远程调试大型复杂应用程序的好做法,在 Mixing debug and release library/binary - bad practice? 中也有解释。
除了将 link 库从 Multi-threaded Debug DLL (/MDd)
切换到 Multi-threaded DLL (/MD)
之外,还需要考虑像 _ITERATOR_DEBUG_LEVEL
这样的调试宏,否则在 linking 期间可能会发生冲突.指示此类冲突的典型错误消息是 error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL'
一旦所有冲突的宏都得到解决,它将 link 到标准运行时库,但应用程序的调试符号仍然存在。
另外,@Adrian Mole 感谢您在这件事上的帮助。