私はGtestを使ってユニットテストをしようとしています。コンパイル順eclipse C++
私は、テスト対象のオリジナルプロジェクト(リンクすること)からのファイルを持つ別のプロジェクトを作成しています。新しいプロジェクトでは、次にテストする関数またはユニットの追加の依存関係の擬似実装とモックを作成します。元のプロジェクトからのファイルで、私は私が直面しています問題は、私はテストプロジェクトがあるときに、偽の実装が含まれるように、特定の順序でファイルをコンパイルする必要があり、元の依存関係や偽の実装
を含めることの#ifdefを使用していますビルド。 私はMinGW、GNU BuilderでWindows 10でMCUXpressoを使用しています
ファイルのコンパイル順序を制御するための回避策や方法を予期しています。
#ifdef IsTesting //This is part or original project, original header files
#include "Fake_dependency"
#else
#include "Original_Dependency"
#endif
は次に、新しいプロジェクトに私は、新しいプロジェクトやテストプロジェクトをコンパイルするとき、私は私がファイルよりも第1またはそれ以前にコンパイルされるように定義され、この変数を持つこのファイルを必要とする
#define IsTesting true // Part of Test_Project, followed by other code for testing
を定義します
cppファイルのコンパイル順は関係ありません。多分あなたはリンクの順序を意味するでしょうか? –
C++ではコンパイル順は関係ありません。あなたのC++ファイルに正しいヘッダファイルを含める必要があるかもしれません... –
なぜあなたの状況に関係するのか分かりませんが、特定の順序でコンパイルする必要がある場合は、自分の 'Makefile' 。 – Galik