私はVisual Studioで作業しますが、私のプロジェクトはPOSIXベースの環境(marmalade sdk)用です。このプロジェクトでは、リリース ビルドはARM用gccでコンパイルされますが、デバッグバージョンはウィンドウで動作し、MSコンパイラによってコンパイルされます。また、この環境には、独自のSTLおよびその他の標準ライブラリが実装されています。_MSC_VERの定義を解除する方法は?
これらのC++ libraresの多くは、このようなコードを持っている:
#if defined(_MSC_VER)
#include <Windows.h>
#else
#include <pthread.h>
#endif
は_MSC_VERマクロを未定義することが可能ですか? - C++ライブラリがここでPOSIXシステムを検出するようにします。
'_MSC_VER'のみが定義されます。他のコンパイラを使用する場合、定義されません。 –
はい、Visual StudioのC++コンパイラでコンパイルしますが、enviroumentはWindows.hのようなWindowsのlibraresを使用しません。どのようにstandartのWindows環境ではないコンパイラに伝えるために私のqestion。 – strobe
'_WIN32'のようなビルドベースの定義を使う方が良いかもしれませんが、' _MSC_VER'はコンパイラ組み込み関数として定義不可能になる可能性がほとんどあります。 – Necrolis