我用过 this作为引用,但它似乎并不完整。当我设置 /NODEFAULTLIB
时,我收到有关缺少 __except_list
、__load_config_used
以及其他一些显然与 SEH 相关的内容的链接器错误。很容易让 _CxxThrowException
和 friend 正确链接,但我不知道 __except_list
应该是什么,我不知道从哪里开始寻找。
我同时使用 MSC 和 IC。使用 IC 时,链接器报告 __except_list
丢失,但 MSC 不是这种情况。
对于那些最喜欢回答“为什么?”的人来说:这是因为我想知道它是如何工作的,而且我厌倦了无所事事地测试应用程序,一开始就毫无理由地提交 300kb。
最佳答案
如果你想摆脱CRT
依赖,那么将/Zl
选项传递给编译器。链接器不需要任何特殊选项(编译器不会插入
/DEFAULTLIB:...
到 .drectve
部分,因此链接器不会将您的 EXE
绑定(bind)到任何 CRT
).
当然,您不应该在代码中使用 C++
异常或堆;或者您需要提供您自己的用汇编
语言编写的库函数版本。
关于c++ - 是否有关于更换 MS CRT 的最新引用资料?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12016138/