我已使用this作为参考,但似乎并不完整。当我设置/NODEFAULTLIB
时,我收到有关丢失__except_list
,__load_config_used
以及其他一些显然与SEH相关的内容的链接器错误。很容易让_CxxThrowException
和朋友正确关联,但我不知道__except_list
应该是什么,我不知道从哪里开始寻找。
我正在使用MSC和IC。使用IC时,链接器报告__except_list
缺失,但MSC不是这种情况。
对于那些最喜欢的答案是“为什么?”:这是因为我想知道它是如何工作的,而且我已经厌倦了无所事事的测试应用程序以300kb开始生命,完全没有理由。
答案 0 :(得分:2)
如果要摆脱CRT
依赖关系,请将/Zl
选项传递给编译器。链接器不需要任何特殊选项(编译器不会插入
/DEFAULTLIB:...
到.drectve
部分,因此链接器不会将您的EXE
绑定到任何CRT
。
当然,您不应该在代码中使用C++
异常或堆;或者您需要提供以assembly
语言编写的自己版本的库函数。
答案 1 :(得分:0)
链接器选项/ safeseh:否(查看PE图像信息中的IMAGE_LOAD_CONFIG_DIRECTORY)。