Fsz*_*ton 1 macos linker objective-c objective-c++ metal
我在 El Capitan 上,我通过 Xcode 创建了一个新项目,我选择了其中OS X -> Application -> Game (Language: Objective-C, Game Technology: Metal)
该项目最初编译并运行没有问题。
然后我将主视图控制器重命名GameViewController.m为GameViewController.mm使用 Objective-C++。当我现在构建时,我收到以下链接器错误:
体系结构 x86_64 的未定义符号:“_MTKMetalVertexDescriptorFromModelIO”,引用自:GameViewController.o 中的 -[GameViewController _loadAssets] “_OBJC_CLASS_$_MDLMesh”,引用自:GameViewController.o 中的 objc-class-ref “_OBJC_CLASS__$_MTKMesh”,引用自:objc GameViewController.o 中的 -class-ref “_OBJC_CLASS_$_MTKMeshBufferAllocator”,引用自:GameViewController.o 中的 objc-class-ref:未找到架构 x86_64 的符号
我尝试过将金属标头包裹进去extern "C" {},但这没有帮助。
我怎样才能让它构建?
原因是 Objective-C 有一个相对较新的功能,即包含标头会自动将框架添加到链接命令中。Apple 提供的模板项目默认启用该功能。因此,构建设置中的框架列表为空。通过将语言更改为 Objective-C++,您就放弃了该功能,并且必须手动添加框架。
| 归档时间: |
|
| 查看次数: |
826 次 |
| 最近记录: |