0

iOS 用の Objective-C、C++、C 混合プロジェクトをコンパイルしようとしています。私はllvm 2.0コンパイラを使用し、「コンパイルソース」を「ファイルタイプに応じて」に設定します。プレフィックス ヘッダーの使用を無効にし (希望します)、 #include である必要がある間違った #import を探しました。

何らかの理由でコンパイラが NSObjectiveCRuntime.h をインクルードしようとするため、cpp ファイルをビルドするときにコンパイル エラーが発生します。

4

1 に答える 1

0

ビルド設定で間違ったエントリを探していました。「プリコンパイル プレフィックス ヘッダー」を無効にしても、まだ「プレフィックス ヘッダー」が指定されている場合は何も起こりません。私は次の方法で問題を解決しました:

  • 新しい 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++ でプレフィックス ヘッダーを介して含まれるものを明示的に指定できます。

于 2012-06-24T18:57:07.223 に答える