在我从事的 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)
...
}
关于ios - "Different language linkage"— xcode 4 中的警告,xcode 5 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18980649/