
我可以从Objective C / .mm文件访问/调用C函数
但是到目前为止还没有运气,即我不能从C files调用Objective C函数,
当我试图包括Objective C头甚至系统头
#import <foundation/foundation.h>
绕过1000个编译错误,
这样的东西
/Developer/SDKs/MacOSX10.6.sdk/System/library/Frameworks/Foundation.framework/headers/NSObjCRuntime.h:180:0 /Developer/SDKs/MacOSX10.6.sdk/System/library/Frameworks/Foundation.framework/headers/NSObjCRuntime.h:180: error: expected unqualifIEd-ID before '@' token/Developer/SDKs/MacOSX10.6.sdk/System/library/Frameworks/Foundation.framework/headers/NSObjCRuntime.h:182:0 /Developer/SDKs/MacOSX10.6.sdk/System/library/Frameworks/Foundation.framework/headers/NSObjCRuntime.h:182: error: expected initializer before '*' token/Developer/SDKs/MacOSX10.6.sdk/System/library/Frameworks/Foundation.framework/headers/NSObjCRuntime.h:183:0 /Developer/SDKs/MacOSX10.6.sdk/System/library/Frameworks/Foundation.framework/headers/NSObjCRuntime.h:183: error: 'Nsstring' was not declared in this scope/Developer/SDKs/MacOSX10.6.sdk/System/library/Frameworks/Foundation.framework/headers/NSObjCRuntime.h:183:0 /Developer/SDKs/MacOSX10.6.sdk/System/library/Frameworks/Foundation.framework/headers/NSObjCRuntime.h:183: error: 'aSelectorname' was not declared in this scope
我缺少一些预编译的旗帜等.
任何人都可以建议我,最好的方式来调用它从NSObject的继承/访问目标C级,而不需要修改太多的C代码,我只需要调用一个函数
代码结构/包含头文件的顺序是
Some system header fileSome Core Class header file #import <foundation/foundation.h>解决方法 如果您有一个需要使用Objective-C的C代码的.cpp文件,请将.cpp文件重命名为.mm或将-x objective-c重命名为编译器. 总结
以上是内存溢出为你收集整理的c++ 混合目标C,(*.m,* .mm和.c /.cpp)文件全部内容,希望文章能够帮你解决c++ 混合目标C,(*.m,* .mm和.c /.cpp)文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)