我有一个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/

10-15 04:32