我正在尝试为 iOS 编译一个objective-c、c++、c 混合项目。我使用 llvm 2.0 编译器并将“编译源为”设置为“根据文件类型”。我禁用了使用前缀标头(我希望)并且努力寻找错误的 #import 应该是 #include s。
在构建 cpp 文件时仍然出现编译错误,因为编译器出于某种原因试图包含 NSObjectiveCRuntime.h。
我正在尝试为 iOS 编译一个objective-c、c++、c 混合项目。我使用 llvm 2.0 编译器并将“编译源为”设置为“根据文件类型”。我禁用了使用前缀标头(我希望)并且努力寻找错误的 #import 应该是 #include s。
在构建 cpp 文件时仍然出现编译错误,因为编译器出于某种原因试图包含 NSObjectiveCRuntime.h。
我在构建设置中寻找错误的条目。如果仍然指定了“Prefix Header”,则禁用“Precompile Prefix Header”不会做任何事情。我通过以下方式解决了我的问题:
将以下代码添加到它
//
// 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 明确指定包含的内容。