Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.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
Ios 无法在objective-c中导入c文件_Ios_Objective C_C - Fatal编程技术网

Ios 无法在objective-c中导入c文件

Ios 无法在objective-c中导入c文件,ios,objective-c,c,Ios,Objective C,C,我正在尝试在添加一些C代码之后编译我的项目 我正在使用上提供的Paul Kocher的河豚算法实现 因为我的工作区中包含了blowfish.c和blowfish.h,所以我的编译器运行得很疯狂。就像它不识别Objective-c代码,在NSObject类上指出错误一样 我试过了。嗯,呼叫课程,但问题仍然存在 找到的每个答案都包括C++文件,但不是我的PB…… 可能是我错过了一个编译器指令?最有可能的情况是,blowfish.c的编译使用了您以前建立的预编译头(.pch)文件,其中包括Object

我正在尝试在添加一些C代码之后编译我的项目

我正在使用上提供的Paul Kocher的河豚算法实现

因为我的工作区中包含了blowfish.c和blowfish.h,所以我的编译器运行得很疯狂。就像它不识别Objective-c代码,在NSObject类上指出错误一样

我试过了。嗯,呼叫课程,但问题仍然存在

找到的每个答案都包括C++文件,但不是我的PB……


可能是我错过了一个编译器指令?

最有可能的情况是,blowfish.c的编译使用了您以前建立的预编译头(
.pch
)文件,其中包括Objective-c框架。只需禁用预编译头,就可以了。您可能能够对这些框架进行条件化,但就个人而言,我发现预编译头比它们的价值更麻烦。

多亏了microtherion,我发现了这个问题

My.pch文件已声明为:

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif 

#import "AppDelegate.h"
#import "UINavigationController+Rotation.h"
#import "Categories.h"
#ifdef_uuobjc__
#进口
#进口
#恩迪夫
#导入“AppDelegate.h”
#导入“UINavigationController+Rotation.h”
#导入“Categories.h”
最后三个导入的文件是objective-C。
我刚把#endif的位置改为:

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>   

    #import "AppDelegate.h"
    #import "UINavigationController+Rotation.h"
    #import "Categories.h"
#endif    
#ifdef_uuobjc__
#进口
#进口
#导入“AppDelegate.h”
#导入“UINavigationController+Rotation.h”
#导入“Categories.h”
#恩迪夫

c文件应该可以正常工作,但是您可能需要使用
extern“c”{…}
来包装头部。有吗?你能发布一个样本项目吗?@Dave:没有。你能告诉我更多吗?@Grady:啊!它在一个空的示例项目上工作@Martin如果它在一个空的示例项目中工作,我会确保您没有包含一个.cpp文件,这正是问题所在。请参阅我的答案以获得更精确的信息。谢谢