我目前正在尝试在添加一些C代码后编译我的项目。
我使用Bruce Schneier's website上提供的Paul Kocher的河豚算法实现。
因为我包括了blowfish.c&在我的工作区中的blowfish.h,我的编译器运行疯狂。就像它不能识别Objective-c代码一样,在NSObject类上指出错误!
我试过.mm调用类,但问题仍然存在。
在SO上找到的每个答案都谈到了包含C ++文件,但它不是我的pb ......
也许是我错过的编译器指令?
答案 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