将源文件类型更改为 Objective-C++ 后的链接器错误

Posted

技术标签:

【中文标题】将源文件类型更改为 Objective-C++ 后的链接器错误【英文标题】:Linker errors after changing source file type to Objective-C++ 【发布时间】:2014-11-30 20:13:34 【问题描述】:

我有一个 OpenGL ES 2.0 应用程序,并且想在视图控制器实现中使用 C++ 代码。但是,将文件扩展名改成mm后(或者甚至只是调整源类型而不更改文件名),在链接的过程中会遇到以下错误:

架构 armv7 的未定义符号:

“_GLKMatrix4Identity”,引用自: GameViewController.o 中的 GLKMatrix4MakeTranslation(float, float, float) “_OBJC_METACLASS_$_GLKViewController”,引用自: _OBJC_METACLASS_$_GameViewController 在 GameViewController.o “_OBJC_CLASS_$_GLKViewController”,引用自: _OBJC_CLASS__GameViewController 在 GameViewController.o “_GLKMatrix3InvertAndTranspose”,引用自: -GameViewController.o中的[GameViewController更新] ld:未找到架构 armv7 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

欢迎提出任何建议。

【问题讨论】:

【参考方案1】:

我在构建阶段设置中手动添加了 GLKit 框架。 (有趣的问题——为什么应用程序在不涉及 C++ 源时不需要它——它怎么可能编译和运行?)

【讨论】:

***.com/questions/27139655/…

以上是关于将源文件类型更改为 Objective-C++ 后的链接器错误的主要内容,如果未能解决你的问题,请参考以下文章

将 Objective-C++ 文件添加到 C++ Xcode 5 项目

将类型更改为 Windows 应用程序后应用程序无法正常工作

如何在Swift中将UITextField键盘类型更改为电子邮件

ListAdapter 在将数组类型更改为 int 后拒绝应用程序

协议缓冲区:将字段类型从字符串更改为字符串值向后兼容?

GitHub 将存储库更改为错误的语言