0

我正在尝试为 iOS 编译一个objective-c、c++、c 混合项目。我使用 llvm 2.0 编译器并将“编译源为”设置为“根据文件类型”。我禁用了使用前缀标头(我希望)并且努力寻找错误的 #import 应该是 #include s。

在构建 cpp 文件时仍然出现编译错误,因为编译器出于某种原因试图包含 NSObjectiveCRuntime.h。

4

1 回答 1

0

我在构建设置中寻找错误的条目。如果仍然指定了“Prefix Header”,则禁用“Precompile Prefix Header”不会做任何事情。我通过以下方式解决了我的问题:

  • 创建一个新的 ProjectName_Prefix.pch
  • 通过目标构建设置中的“前缀标头”将其指定为我的目标预编译标头
  • 将以下代码添加到它

    //
    //  Entourage_Prefix.pch
    //  Entourage
    //
    //  Created by Martin Lütke on 24.06.12.
    //  Copyright 2012 __MyCompanyName__. All rights reserved.
    //
    
    #include <string>
    #include <strstream>
    #include <vector>
    #include <map>
    
    #ifdef __OBJC__
            #import <Foundation/Foundation.h>
            #import <UIKit/UIKit.h>
            #import "cocos2d.h"
    #endif
    
    #ifdef __cplusplus
            #include <boost/shared_ptr.hpp>
            #include <boost/function.hpp>        
    #endif
    

    这将允许通过 Objective-c 或 c++ 中的 Prefix Header 明确指定包含的内容。

于 2012-06-24T18:57:07.223 回答