我可能遇到了一个简单的问题,但在编译期间没有信息性错误或警告来提醒我出了什么问题。
我有一个 Objective-C++ 应用程序,其中包含一个 C++ 主文件和 ObjC 头文件。
构建良好,但运行时,出现以下错误消息:
Dyld Error Message:
Symbol not found: _OBJC_CLASS_$_AppController
Referenced from: /Users/slate/Documents/osirixplugins/eqOsirix/build/Development/rcOsirix.app/Contents/MacOS/rcOsirix
Expected in: flat namespace
in /Users/slate/Documents/osirixplugins/eqOsirix/build/Development/rcOsirix.app/Contents/MacOS/rcOsirix
再多的谷歌搜索都没有找到解决方案,我确定我只是在某处错过了编译或构建选项。
“AppController.h”包含在目标中(选中),并且 #import
在 ObjC 类文件中。
非常感谢任何帮助。
ObjC++ 总是让我头疼。
谢谢,
-S!
最佳答案
显然缺少 AppController 类。 AppController 类是在动态库的框架中定义的吗?如果是这样,当您运行应用程序时,它知道在哪里可以找到库/框架吗?
顺便说一句,这是一个链接器问题。头文件无关紧要。这是您需要查看的 .m 或 .mm 文件。
关于c++ - 未找到符号,应在平面命名空间 ObjC++ 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2600874/