背景
环境:
- macOS 14
- MacBook Pro M3
正文
在macOS上进行C++开发,有时会遇到以下报错:
Undefined symbols for architecture arm64:
"CameraRawWidget::eventFilter(QObject*, QEvent*)", referenced from:
vtable for CameraRawWidget in mocs_compilation.cpp.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
这个错误信息,让人很茫然,很容易被ld: symbol(s) not found for architecture arm64
误导。实际上的真实原因,可能跟ARM架构毫无关系。
故总结一下可能的原因:
原因一
函数未定义。即,如果没有实现函数的定义,也会报这个错误。
总结
目前已记录的已知原因如上,后续遇到继续更新。