我想这样做的原因是调试库中充斥着额外的“断言”语句,这些语句在远程调试期间需要很长时间才能开始。
我希望它只是替换Multi-threaded Debug DLL (/MDd)
为Multi-threaded DLL (/MD)
in Code Generation
->Runtime Library
但我想知道是否还有其他需要考虑的变化?
我想这样做的原因是调试库中充斥着额外的“断言”语句,这些语句在远程调试期间需要很长时间才能开始。
我希望它只是替换Multi-threaded Debug DLL (/MDd)
为Multi-threaded DLL (/MD)
in Code Generation
->Runtime Library
但我想知道是否还有其他需要考虑的变化?
这是可行的,也是远程调试大型和复杂应用程序的良好做法,也在混合调试和发布库/二进制文件中进行了说明 - 不好的做法?.
除了将链接库从一个切换Multi-threaded Debug DLL (/MDd)
到Multi-threaded DLL (/MD)
一个之外,还需要考虑调试宏_ITERATOR_DEBUG_LEVEL
,否则在链接期间可能会发生冲突。指示此类冲突的典型错误消息是error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL'
一旦解决了所有冲突的宏,它将链接到标准运行时库,但应用程序的调试符号仍然存在。
另外,@Adrian Mole 感谢在这件事上的协助。