未能在objective-c中导入c文件

时间:2013-05-24 17:26:09

标签: ios objective-c c

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

我使用Bruce Schneier's website上提供的Paul Kocher的河豚算法实现。

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

我试过.mm调用类,但问题仍然存在。

在SO上找到的每个答案都谈到了包含C ++文件,但它不是我的pb ......

也许是我错过的编译器指令?

2 个答案:

答案 0 :(得分:1)

最有可能的是,正在发生的事情是,blowfish.c的编译正在使用您之前建立的预编译头文件(.pch),其中包括Objective-C框架。只需禁用预编译的标头,你应该没问题。您可以条件化这些框架,但就个人而言,我发现预编译头文件比它们的价值更麻烦。

答案 1 :(得分:1)

感谢microtherion,我发现了问题。

我的.pch文件声明为:

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

#import "AppDelegate.h"
#import "UINavigationController+Rotation.h"
#import "Categories.h"

最后3个#import'ed文件是Objective-C 我刚把#endif的地方改为:

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

    #import "AppDelegate.h"
    #import "UINavigationController+Rotation.h"
    #import "Categories.h"
#endif