1

同じターゲットに対して非常によく似た(ほとんどのコードを共有する)2つの組み込みプロジェクトを開発しています。そのために、ビルドAとビルドBの2つのビルドを作成しました。各ビルドには、プロジェクトに応じてソースコードを含めるか除外するために、シンボル「DEVICE_TYPE=」で定義されたいくつかの小さな違いがあります。私が次のことができるように、

#if (DEVICE_TYPE == A)
[Code for build A]
#endif

#if (DEVICE_TYPE == B)
[Code for build B]
#endif

ここでの私の問題は、Eclipseの構文が常にエラーをスローしていることです。これは、明らかにDEVICE_TYPEがBに等しいと常に考えているためです。ただし、どちらのビルドも問題なくコンパイルされます。

アップデート:

シンボルは、Project_Properties-> C / C++ビルド->設定->ツール設定->コンパイラ->プリプロセッサ->シンボルの定義(-D)で次のように定義されます。

ビルドAの場合

DEVICE_TYPE=A
A=0
B=1

ビルドBの場合

DEVICE_TYPE=B
A=0
B=1

ここでの問題は、Eclipseの場合、どのビルドが選択されていても、DEVICE_TYPEは常にBであるということです。これは、内部のすべてのコード#if (DEVICE_TYPE==A)が灰色であることを意味します。

4

1 に答える 1

2

この回答に記載されている「アクティブなビルド設定を使用する」のEclipse設定を試しました か?アクティブなビルド設定を使用しますか?

于 2013-03-05T14:55:31.177 に答える