在iPhoneiPad项目中#import C头文件时出现问题

在iPhoneiPad项目中#import C头文件时出现问题,第1张

概述我有一个C类,我想在iPhone / iPad项目中使用. 我以不同的方式创建了这个文件(比如“New File”=> C),错误总是一样的. 当我编译项目时没有任何#import(.h C类),没关系. 但是只要我在我的一个标题objective-c文件中#import头文件,我就会得到如下错误: error: vector: No such file or directory 要么 error 我有一个C类,我想在iPhone / iPad项目中使用.
我以不同的方式创建了这个文件(比如“New file”=> C),错误总是一样的.

当我编译项目时没有任何#import(.h C类),没关系.

但是只要我在我的一个标题objective-c文件中#import头文件,我就会得到如下错误:

error: vector: No such file or directory

要么

error: expected ‘=’,‘,’,‘;’,‘asm’ or ‘attribute‘ before ‘:’ token”

我尝试在文件信息中为文件类型(C类)设置不同的值,在.mm等中重命名我的objc类,但它似乎不起作用.

所以我一定错过了在objc头文件中导入.h c类的内容,但是:p ^^

解决方案感谢Vlad
1°)要包含标题c文件:

#ifdef __cplusplus    #include "Triangulate.h"#endif

2°)重命名.mm中的objc文件和他的文件信息(右侧clic)设置文件类型为sourcecode.cpp.objcpp

谢谢你的帮助!
文森特

解决方法

Note: Xcode requires that file names
have a “.mm” extension for the
Objective-C++ extensions to be enabled
by the compiler.

尝试在驻留在扩展名为.m的文件中的Objective-C代码中使用C是问题的最可能原因,因为编译器根据错误消息不能识别C构造.将.m文件重命名为.mm应该会有所帮助.

有关更多详细信息,请参阅Using C++ with Objective-C.

假设您想在Objective-C源文件中使用Objective-C类,则完全没有问题.唯一的限制是你的.h文件必须是Objective-C clean.这意味着您不能在其中使用任何C -isms,或者如果您这样做,则必须将它们全部包装在#ifdef __cplusplus中.当标题#included由一个普通的Objective-C文件包含时,标题将被编译为ObjC模式,所以它必须消除那种情况的任何C主义(1).所以你的Objective-C头文件应该像这样包含C头:

#ifdef __cplusplus# include MyCPPheader.h#endif
总结

以上是内存溢出为你收集整理的在iPhone/iPad项目中#import C头文件时出现问题全部内容,希望文章能够帮你解决在iPhone/iPad项目中#import C头文件时出现问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1069187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存