"Different language linkage" — Xcode 4 中的警告,Xcode 5 中的错误



在我参与的Unity iOS项目中,存在"不同的语言链接"问题;这是xcode 4中的警告,但在xcode 5中变成了错误。

/.../Libraries/SomeFile.mm:145:10: Declaration of 'SomeMethod' has a different language linkage

这是文件:

void SomeMethod(const char* _List);
...
extern "C"
{
    void SomeMethod(const char* _List)
    ...
}

我该如何修复它,或者至少(因为它并不是那么重要,至少能够构建一些东西会很好),让它再次成为一个警告?

您需要将

声明包装在extern "C"而不是定义中。可以肯定的是,您可以将两者包装在其中。(虽然,如果我没记错的话,仅仅做声明就足以告知编译器你对定义的意图。这样:

extern "C"
{
    void SomeMethod(const char* _List);
}
...
extern "C"
{
    void SomeMethod(const char* _List)
    ...
}

相关内容

最新更新