小编use*_*249的帖子

架构arm64的未定义符号.将C调用到ObjC++文件中?

我收到Apple Mach-O链接器错误:

Undefined symbols for architecture arm64:
  "_TestFunction", referenced from:
      -[ViewController viewDidLoad] in ViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

以下是重现错误所需的所有步骤:

  1. 我创建了一个新的单视图通用Objective C项目(Xcode Version 6.0.1(6A317))).
  2. 然后我创建了一个名为TestClass的新ObjectiveC文件
  3. 将TestClass.m更改为TestClass.mm
  4. 将" void TestFunction();" 添加到我的.h
  5. 将" void TestFunction(){}" 添加到我的.mm中
  6. 导入TestClass.h我的ViewController.m并尝试TestFunction()从我的viewDidLoad 调用.

我正在做一些Core-Audio工作,需要在我的MIDI回调中进行一些C++调用,所以我不能进行任何ObjectiveC方法调用,因为它们会阻塞音频线程.

也许Xcode将TestFunction()视为C++调用,因此不会从纯ObjectiveC类中获取它?有没有办法告诉Xcode它是C函数?

c++ xcode objective-c ios

4
推荐指数
1
解决办法
3167
查看次数

标签 统计

c++ ×1

ios ×1

objective-c ×1

xcode ×1