Eclipseには、Paths and SymbolsのSymbolsオプションを使用して、プロジェクトの前処理定義(#ifdefマクロ)を指定するオプションがあります。これは、クロスプラットフォームであるコードの効果的なインデックス作成に役立ちます。 Qt Creatorでこれらを提供するオプションはありますか?
QT Documentation から:
定義は.configファイルで指定されます。 .configファイルは通常のC++ファイルであり、解析時にすべてのソースファイルの先頭に追加されます。以下の例のように、.configファイルのみを使用して行を追加します。
#define NAME value
つまり、MyProjectという名前のプロジェクトをインポートする場合、プリプロセッサ定義をMyProject.configで指定する必要があります
私のプロジェクトの場合、インデクサーはこの定義プロジェクト全体を認識し、これを反映するようにオートコンプリートを変更します。
場合によります:-)
以下は、qmakeベースのプロジェクトを使用していることを前提としています。
最初に、DEFINES += SOME_DEFINE=value
を.proファイルに追加できます。これは、作成者の内部およびコマンドラインでビルドするときに取得され、.proファイルからMSVCまたはXCodeプロジェクトを作成するときにも表示されるはずです。
次に、プロジェクトの構成時にQt Creatorが発行するqmake呼び出しにDEFINES += SOME_DEFINE=value
を追加できます。これは、プロジェクトモード、ビルド設定、QMakeステップで発生します。
最後に、#define SOME_DEFINE
value liensをヘッダーファイルに入れて含めることができます。それはすべての種類のプロジェクトで機能します:-)
.proファイルで#define文字列を指定したかったのですが、コードは引用符のない文字列の内容になりました。引用符をエスケープし、エスケープをエスケープして、1組の引用符を取得して、コード全体に適用する必要がありました。これは、qmakeが1組のエスケープと一部の引用符を削除し、コマンドラインが残りのエスケープを削除するためです。これは私のために働いた:
DEFINES += "VERSION=\"\\\"0.1.0\\\"\""
Windowsでは、このVERSION文字列を.rcファイルで使用して、Windowsが必要とするバージョンのものを作成したり、「About」メニューのコードを作成したりできます。
最初の答えは良いと思いますが、設定を手動で管理する必要があります。これに対してIDE releaseまたはdebug構成が選択されているかどうかに基づいて、自動的に.
このビットは冗長かもしれませんが、これはあなたのために動作することに注意してくださいIDE for building)を使用している場合のみ。そうではない場合、別のソリューションが必要になります。
写真は千の言葉に値するので、Qt Creator 4.3.1を使用してデバッグビルド用のデバッグマクロを定義する方法の例を次に示します。
#ifdef DEBUG
sのDEBUG
。私の場合は__CTS_DEBUG__
です)これで、マクロは、デバッグ構成を使用している場合にのみ定義されます。 Releaseconfig(手順1を参照)を選択すると、自動的に未定義になり、条件に応じてコンパイルされたデバッグコードが削除されます。下の写真は、あなたがいつも望んでいたものです。
debugconfigが選択された状態
release構成を選択した場合:
QtCreatorのプロジェクト設定でいくつかのPREPROCESSORを定義できます。ここにはQtCreatorはありませんが、プロジェクト構成用のタブがあることを覚えています。