0

在我从事的一个 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)
    ...
}

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

4

1 回答 1

5

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

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

...

extern "C"
{
    void SomeMethod(const char* _List)
    ...
}
于 2013-09-24T11:42:57.320 回答