【发布时间】:2015-03-29 18:18:21
【问题描述】:
我正在尝试从 Swift 调用一个简单的 C++ 函数,但我收到 Apple Mach-O 链接器错误:
我的 Sample.h 文件(C++):
#if __cplusplus
extern "C" {
#endif
int getOne();
#ifdef __cplusplus
}
#endif
我的 Sample.cpp 文件:
#include <stdio.h>
int getOne()
{
return 1;
}
我的桥接头:
#include "Sample.h"
我正在尝试调用该函数,如下所示:
println(getOne())
注意事项:
我确实将 C++ 库添加到了项目和构建库(构建阶段),我在 Xcode 6.2 (Swift 1.1) 和 Xcode 6.3 (beta Swift 1.2) 中尝试了这段代码,并且出现了同样的错误。
我确实将桥接头添加到构建设置中。
我已经阅读了一些关于在 Obj-c 中包装我的 C++ 代码的内容,但我还没有完全做到这一点。
感谢任何帮助。
【问题讨论】:
-
声明标记为
extern "C",而不是定义。
标签: c++ xcode swift linker-errors