从现在开始我一直在一个无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/

10-11 23:15