Visual Studioは任意のカスタムプラットフォームをサポートしていません。サポートされているターゲットプラットフォームの定義済みセットのみをサポートします。一般的な一般的な使用方法は、x86(IA-32)とx86-64(AMD64)です。必要なビルドツールがインストールされている場合は、ItaniumまたはARMのサポートを受けることもできます。歴史的なバージョンはAlphaとPowerPC、そしておそらく私が忘れている他のいくつかのアーキテクチャをサポートしています。
これは、もちろんあなたの役に立つものではありません。最終的に32ビットのx86または64ビットx86バイナリを作成したい場合、絶対にこれら2つのプラットフォームのいずれかを使用する必要があります。
代わりに新しい設定を作成することをお勧めします。デフォルトでは、ターゲットプラットフォームごとに「デバッグ」と「リリース」が表示されますが、必要な数だけ設定を行うことができます。私が行うことは、必要なカスタム属性を持つ "デバッグ(カスタム)"と "リリース(カスタム)"(または任意の名前)を作成することです。
あなたの例に多すぎることを読んでいるかもしれませんが、87
は、SSEまたは新しい命令セットを使用せずにx87命令セットに制限するプラットフォームを作成しようとしていますか?その場合は、/arch
コンパイラスイッチで設定できます。 /arch:IA32
はあなたをx87命令セットに制限します。 /arch:SSE2
がデフォルトです。他のオプションには、/arch:SSE
,/arch:AVX
、および/arch:AVX2
が含まれます。これらのオプションは、あらかじめ定義されたマクロの定義に影響します。 AVXがサポートされている場合、__AVX__
が定義されます。 AVX2がサポートされている場合、__AVX2__
が定義されます。そうでない場合は、_M_IX86_FP
シンボルの値を確認する必要があります。の場合は0
、/arch:SSE
の場合は1
、/arch:SSE2
の場合は2
となります。これらのシンボルの値をテストし、条件付きで必要なライブラリにリンカーを向けることができます。次のようなものです:
#if (defined _M_IX86)
#if (defined __AVX2__)
#pragma comment(lib, "bin\avx2\MyData.lib")
#elif (defined __AVX__)
#pragma comment(lib, "bin\avx\MyData.lib")
#elif (_M_IX86_FP == 2)
#pragma comment(lib, "bin\sse2\MyData.lib")
#elif (_M_IX86_FP == 1)
#pragma comment(lib, "bin\sse\MyData.lib")
#else
#pragma comment(lib, "bin\87\MyData.lib")
#endif
ありがとうございます - 87はx87ではなく、私の製品のバージョンです。私がやったことは、そのようなものです[リンク](http://stackoverflow.com/questions/533554/how-to-use-different-files-in-a-project-for-different-build-configurations- vis)。私がmsビルドプロセスで条件付けできる新しい「名前」を追加したようなものです。 –