Xcode 11 Objective C++ - 无法在 ObjectiveC++ 项目中将实现与 Header 分开

Xcode 11 Objective C++ - Can't separate implementation from Header in ObjectiveC++ Project

我创建了一个 Xcode 标准 Objective-C 项目,想要测试与 C++ 的集成。 我已将我的文件相应地重命名为 .mm 等

我创建了一个带有 .hpp header 和 .cpp imp 文件的 C++ Class。 这是 header

class a {
private:
   int anInt = 1;
public:
    int getAnInt();
};

这是小鬼

#include "PrismMatricies.hpp"

int a::getAnInt() {return anInt;}

在我的 ViewController.mm 文件中,我在导入 .hpp header

后执行此操作
a ar;
NSLog(@"Some Log %i", ar.getAnInt());

在 Xcode 中构建错误代码 = 未定义的符号:a::getAnInt()

如果我像这样在 header 中移动函数定义

class a {
private:
   int anInt = 1;
public:
    int getAnInt();
};

int a::getAnInt() {return anInt;}

项目有效

任何人都可以向我解释一下,因为我根本不明白

请注意 "undefined symbol" 是一个 link 错误,而不是编译错误,您的代码看起来确实正确。

如果您的 .cpp 没有被 link 编辑到您的构建目标中,您将收到该错误。确保它包含在构建目标的 "compile sources" 列表中。 (您还可以在“文件检查器”实用程序窗格中检查目标成员资格框是否已勾选。)