我一直在开发的一个windows应用程序,是由于没有使用CRT而交付的。有一些很好的文章描述了这样做的指导方针和好处(我在写这个问题时都找不到--对不起)。除了不显式使用CRT符号之外,它都是关于链接器和compailer配置的。我的发布和调试配置现在几乎相同了,两者都指定了/NODEFAULTLIB:"LIBCMT",唯一的区别是运行时标志/MT (在发布中)和/MTd (在调试中)-这是必需的,因为我正在使用SEH的__try/__except语法,所以唯一需要的函数是_except_handler3()。但是,调试版本正在成功构建,发布版本失败,并出现Unresolved Symbol _except_handler3链接错误。当强制发布版本使用/MTd编译时-此问题已解决。
那件事怎么可能?哪个.lib包含_except_handler3导出?我该如何解决这个问题呢?
发布于 2014-02-21 03:40:45
有关不带CRT的应用程序,请参阅:http://blog.kalmbach-software.de/2008/02/02/smallest-application-size-for-win32-console-application/
但是如果你想使用__try / __except,你需要使用CRT;或者你需要编写你自己的"_except_handler3“。
另请参阅:_except_handler3
你还有CRT源码,你可以看看源码,看看它在做什么!参见: C:\Program Files (x86)\Microsoft Visual Studio11.0\VC\crt\src
https://stackoverflow.com/questions/21916530
复制相似问题