首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试和发布之间奇怪的链接差异导致了一个未解析的_except_handler3,或者为什么,哦,为什么我不知道libcmtd?

调试和发布之间奇怪的链接差异导致了一个未解析的_except_handler3,或者为什么,哦,为什么我不知道libcmtd?
EN

Stack Overflow用户
提问于 2014-02-21 02:31:48
回答 1查看 132关注 0票数 0

我一直在开发的一个windows应用程序,是由于没有使用CRT而交付的。有一些很好的文章描述了这样做的指导方针和好处(我在写这个问题时都找不到--对不起)。除了不显式使用CRT符号之外,它都是关于链接器和compailer配置的。我的发布和调试配置现在几乎相同了,两者都指定了/NODEFAULTLIB:"LIBCMT",唯一的区别是运行时标志/MT (在发布中)和/MTd (在调试中)-这是必需的,因为我正在使用SEH__try/__except语法,所以唯一需要的函数是_except_handler3()。但是,调试版本正在成功构建,发布版本失败,并出现Unresolved Symbol _except_handler3链接错误。当强制发布版本使用/MTd编译时-此问题已解决。

那件事怎么可能?哪个.lib包含_except_handler3导出?我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21916530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档