0

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

我正在使用Bruce Schneier 网站上提供的 Paul Kocher 的河豚算法实现。

由于我在我的工作区中包含了blowfish.c 和blowfish.h,我的编译器正在疯狂运行。就像它不能识别 Objective-c 代码一样,指向 NSObject 类的错误!

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

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

也许我错过了一个编译器指令?

4

2 回答 2

1

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

于 2013-05-24T17:39:57.607 回答
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 文件是 Objective-C。
我刚刚将#endif 位置更改为:

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

    #import "AppDelegate.h"
    #import "UINavigationController+Rotation.h"
    #import "Categories.h"
#endif    
于 2013-05-24T17:40:30.877 回答