我有一个OpenGL ES 2.0应用程序,并且想在视图控制器实现中使用C ++代码。但是,在将文件扩展名更改为mm之后(甚至只是在不更改文件名的情况下调整源类型),在链接期间会遇到以下错误:
架构armv7的未定义符号:
“ _GLKMatrix4Identity”,引用自:
GLKMatrix4MakeTranslation(float,float,float)在GameViewController.o中
从以下位置引用的“ _OBJC_METACLASS _ $ _ GLKViewController”
GameViewController.o中的_OBJC_METACLASS _ $ _ GameViewController
从以下位置引用的“ _OBJC_CLASS _ $ _ GLKViewController”
_OBJC_CLASS _ $ _ GameViewController.o中的
从以下位置引用的“ _GLKMatrix3InvertAndTranspose”
-[GameViewController更新]在GameViewController.o中
ld:找不到架构armv7的符号
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
欢迎任何建议。
最佳答案
我在构建阶段设置中手动添加了GLKit框架。
(不过,有趣的问题是-当不涉及C ++源代码时,为什么应用程序不要求它-它怎么可能编译和运行?)
关于c++ - 将源文件类型更改为Objective-C++后的链接器错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27217728/