“不同的语言链接”——xcode 4 中的警告,xcode 5 中的错误

Max*_*kov 0 xcode unity-game-engine ios xcode5

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

/.../Libraries/SomeFile.mm:145:10: Declaration of 'SomeMethod' has a different language linkage
Run Code Online (Sandbox Code Playgroud)

这是文件:

void SomeMethod(const char* _List);

...

extern "C"
{
    void SomeMethod(const char* _List)
    ...
}
Run Code Online (Sandbox Code Playgroud)

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

ipm*_*mcc 5

您需要将声明包装在extern "C"而不是定义中。可以肯定的是,您可以将两者都包裹在其中。(不过,如果我没记错的话,只要做声明就足以通知编译器您对定义的意图。)像这样:

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

...

extern "C"
{
    void SomeMethod(const char* _List)
    ...
}
Run Code Online (Sandbox Code Playgroud)