0

これが他の場所でカバーされている場合は申し訳ありませんが、情報をすぐに見つけることができませんでした. 私は、プリプロセッサ ディレクティブを使用して特殊な機能を追加および削除する、会社の既存のライブラリを使用しています。たとえば、ビルドが OpenBLAS および Speex ライブラリの使用をサポートする必要があることを示す IMPORT_OPENBLAS および IMPORT_SPEEX を使用する場合があります。また、Google テスト フレームワークに基づいた単体テストも用意されています。一部のテストでは、プリプロセッサ ディレクティブを実行できるようにする必要があり、ライブラリに静的にリンクされています。通常、単体テストを実行する 2 つの場所は、Visual Studio (違いがある場合は 2008) と、vsbuild.exe を呼び出してビルドを行う Ant を使用します。

要するに、私は上記のライブラリなどの追加機能を追加する任務を負っています。私たちのライブラリを使用する他のプロジェクトがあり、特に依存関係の問題と、複雑さを増したくないという理由で、これらの機能をオンにしたくない. 私の最初の衝動は、プリプロセッサ ディレクティブをユニット テスト プロジェクトに入れることでした。ライブラリを依存関係としてビルドするためですが、うまくいかないようです。依存プロジェクトをコンパイルするために特定のプリプロセッサ コマンドを有効にする必要があることを示すフラグを立てる方法はありますか?

もう 1 つの方法は、適切なプリプロセッサ フラグを具体的に設定する単体テスト用の新しいビルド ターゲットを作成することですが、別のリンク方法、プロセッサ サイズ、およびデバッグとリリースを含む 10 の異なるビルド ターゲットが既にあるため、可能であればそれを避けたいと考えています。モードと私の以前のタスクの 1 つは、最初のリリースがこれらのターゲットのうちの 2 つだけに基づいていたため、何ヶ月もの間それらのいくつかをコンパイルしていなかったため、それらをすべて再び機能させることでした。

ご協力いただきありがとうございます。

4

1 に答える 1

0

これらの定義を含むヘッダー ファイルを作成し、プロジェクト プロパティを使用してプロジェクト内のすべてのファイルに含めることができます。プロジェクト プロパティ -> 構成プロパティ -> C/C++ -> 詳細設定 -> 強制インクルード を参照してください。

つまり、このファイルはすべてのプロジェクトに含まれます。

于 2013-08-21T15:03:54.357 に答える