Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何添加C/C++;目标C代码的函数(与iphone相关)_Iphone_Objective C_C_Xcode_Ios4 - Fatal编程技术网

如何添加C/C++;目标C代码的函数(与iphone相关)

如何添加C/C++;目标C代码的函数(与iphone相关),iphone,objective-c,c,xcode,ios4,Iphone,Objective C,C,Xcode,Ios4,我将带有C函数的.h/.cpp文件添加到我的Xcode项目中。在objective-C函数中如何调用C函数 当我将C文件(#import“example.h”)包含在app delegate头文件中时,它出现了错误(可能是因为它将cpp文件视为objective-C),尽管它在未包含/导入的情况下编译良好 谢谢 编辑:将所有文件从m重命名为mm修复了该问题。但是,我在构建时遇到链接器错误(ld:duplicate symbol)。。。最好先研究一下。再次感谢。 < P>如果你想用C++的Obju

我将带有C函数的.h/.cpp文件添加到我的Xcode项目中。在objective-C函数中如何调用C函数

当我将C文件(#import“example.h”)包含在app delegate头文件中时,它出现了错误(可能是因为它将cpp文件视为objective-C),尽管它在未包含/导入的情况下编译良好

谢谢


编辑:将所有文件从m重命名为mm修复了该问题。但是,我在构建时遇到链接器错误(ld:duplicate symbol)。。。最好先研究一下。再次感谢。

< P>如果你想用C++的ObjuleC模块,将文件扩展名从<代码> .m>代码>改为<代码> .mm .< /P> < P> C函数,不做任何特殊的事,都应该是可调用的。Objective-C是C的超集

如果头文件包含C++的东西,那么你需要编译Objto-C++而不是Objy-C文件。这样做,只需将文件扩展名从<代码> .m>代码>改为<代码> .mm

UL>。
  • 在Objective-C中使用普通C只是 将头文件/源文件包括为 通常,并调用函数。C 文件可以使用标准扩展名
    .h
    .c
    。很多 图书馆已经以这种方式使用了 例如libxml和sqlite

  • 要编写C代码,可以使用 目标-C(准入) 基金会框架)它将需要 放置在
    .m
    文件中。
    .m
    文件 可以包含所有C函数,就像 使用新的 项目

  • < >调用C++代码,C++可以在
    .cpp
    (或其他有效扩展名)但 您的Objective-C文件需要 扩展名
    .mm
    来调用它,并且一次 同样,只需包含头文件。 并在a中使用Objective-C C++类需要<代码> .mm < /C> 分机

    这通常“起作用”。如果您与他人分享它“爆炸”的错误消息,这会很有帮助。您可能希望尝试“包含”而不是“导入”。