符号未找到,预期在Flat Namespace ObjC++中

Ste*_*ani 8 c++ macos objective-c dyld objective-c++

我可能有一个简单的问题,但在编译过程中没有信息错误或警告,提醒我出错的地方.

我有一个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
Run Code Online (Sandbox Code Playgroud)

没有任何谷歌搜索导致解决方案,我敢肯定我错过了某个地方的编译或构建选项.

"AppController.h"包含在目标(已选中)中,并且包含在#importObjC类文件中.

任何帮助是极大的赞赏.

ObjC++经常让我头疼.

谢谢,

-S!

Jer*_*myP 5

显然缺少AppController类.AppController类是在动态库的框架中定义的吗?如果是这样,当您运行应用程序时,它是否知道在哪里可以找到库/框架?

顺便说一下,这是一个链接器问题.头文件无关紧要.这是您需要查看的.m或.mm文件.

  • 是的,实际上,这是包含 AppController.h 的 .m 文件中的命名空间问题,导致它根本不在二进制文件中。不过 GCC 没有抛出任何错误,所以我不知道出了什么问题。谢谢。 (2认同)