16

ファイルでXcode 3.2を使用していxcconfigます。ファイルはターゲット別に編成されています。たとえば、debug.xcconfigファイルとファイルがありますrelease.xcconfig。両方とも共通の設定を使用しているためshared.xcconfig、両方に含まれるファイルを追加しました。

ファイルは次のshared.xcconfigようになります。

GCC_C_LANGUAGE_STANDARD = c99
GCC_WARN_ABOUT_RETURN_TYPE = YES
GCC_WARN_UNUSED_VARIABLE = YES
GCC_PREPROCESSOR_DEFINITIONS = SOME_COMMON_DEFINITIONS

ファイルは次のdebug.xcconfigようになります。

#include "Shared.xcconfig"
GCC_OPTIMIZATION_LEVEL = 0

DEBUGここで、ファイルにプリプロセッサ定義を追加したいと思いdebug.xcconfigます。この質問に示されているように、次の方法が機能するはずです。

GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS) DEBUG"

これは Xcode 3.2 では機能しません。Xcode のドキュメントには、変数の変更は不可能であり、上書きのみが可能であることが明示的に記載されています。

皆さんなら、この問題をどのように解決しますか?

4

4 に答える 4

19

これまで私たちがこれに取り組んできた方法は、各レイヤーに定義のサブセットを構成させ、それらをすべてリーフレベルのxcconfigにまとめることです。

shared.xcconfig

GCC_PREPROCESSOR_DEFINITIONS_SHARED = qFoo qBar qBaz

debug.xcconfig

GCC_PREPROCESSOR_DEFINITIONS_DEBUG = qDebug
GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS_SHARED) $(GCC_PREPROCESSOR_DEFINITIONS_DEBUG)

(サブセット変数を冗長にすることの利点は、それらが構成に使用される値と辞書式に類似しているため、構成ファイルで見つけやすくなることです。)

于 2009-09-09T23:30:05.193 に答える
5

.xcconfig ファイルで次の形式を使用することもできます。(xcode 4 で動作しますが、xcode 3 ではテストされていません)。単なる例であり、すべての設定で機能するようです。

ARCHS=i386 x86_64
ARCHS[config=Debug]=i386
ARCHS[config=Release]=i386 x86_64
于 2013-01-07T14:52:01.663 に答える
2

以下はうまくいくはずです:

xcodebuild GCC_PREPROCESSOR_DEFINITIONS='$(value) BAR=1'
于 2012-09-27T19:21:48.233 に答える
-2

$(inherited) を使用するのはどうですか?

GCC_PREPROCESSOR_DEFINITIONS = $(継承) DEBUG

于 2011-10-26T18:38:30.807 に答える