从现在开始我一直在一个无Visual C ++ Runtime Library项目上工作几天,但是,在进入链接器开始抱怨__CxxFrameHandler3
CRT函数的未解析外部符号之前,我的工作很顺利,因此在查找原因后产生此错误,我发现从主入口点调用任何自定义类的方法正在调用此CRT函数,简单示例:
// /No Common Language RunTime Support
// /Ignore All Default Libraries
class A
{
public:
A();
~A();
int do_something();
private:
};
int A::do_something()
{
return 0;
}
int EntryPoint()
{
A a;
a.do_something(); // Calls the __CxxFrameHandler3 CRT function.
return 0;
}
错误:
LNK2019 unresolved external symbol ___CxxFrameHandler3 referenced in function __unwindfunclet$?UmbraServerMain@@YGHPAUHINSTANCE__@@0PA_WH@Z$0
有没有办法阻止对此CRT函数的调用?
最佳答案
重新发布我的评论作为答案:
此功能与SEH(结构化异常处理)有关,因此要停止调用它,需要在项目中禁用异常(SEH和C ++异常)。
关于c++ - 阻止我的项目调用__CxxFrameHandler3(CRT函数),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51640568/