2

実行スクリプト セクションのビルド フェーズで追加のソース コードを生成するツールがあります。このセクションの結果ファイルをコンパイルとリンクに含めたいと思います。どのように行うことが可能ですか?追加の実行スクリプト セクションに clang 呼び出しを記述できることはわかっていますが、clang とプロジェクト コンパイラ設定を同期させて実行スクリプト セクションを維持するには複雑すぎるため、代替オプションを探しています。

私が生成しているファイルは、現在プロジェクトに含まれているクラスへの一連のカテゴリです。生成されたすべてのコードは、デフォルトでプリコンパイル済みヘッダーにインポートされる generated-categories.h に自動的にインポートされるため、プロジェクトへのカテゴリのインポートについて心配する必要はありません。

4

1 に答える 1

5

次のような内容を含むファイルをプロジェクトに追加することで、この問題を解決できます。

#include "generatedFile1.c"
#include "genreatedFile2.c"

等々。次に、このファイル (またはビルド フェーズ) をソース コード生成ステップに依存させる (または実行後に実行する) 必要があります。

私は Xcode にあまり詳しくないので、具体的にどのようにそれを達成するのかわかりません。うまくいけば、より具体的な経験を持つ誰かが、その面で正しい方向にあなたを向けることができます.

編集:ここで単純なプロジェクトで動作させました。例:

main.m:

#import <Foundation/Foundation.h>
#import "generatedFile.m"

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        // insert code here...
        NSLog(@"%@", string);

    }
    return 0;
}

script.sh:

#!/bin/sh

echo "NSString *string = @\"Hello, World\";" > ${SYMROOT}/generatedFile.m

そして${SYMROOT}、プロジェクト設定の「ヘッダー検索パス」に追加し、「ソースのコンパイル」フェーズの前に「シェルスクリプトの実行」フェーズを追加しました。

于 2013-07-27T04:45:48.073 に答える