プリコンパイル済みヘッダー ( stdafx.h) を使用する Visual Studio C++ ベースのプログラムがあります。現在、gcc 4.x を使用してアプリケーションを Linux に移植しています。
問題は、両方の環境でプリコンパイル済みヘッダーを処理する方法です。私はグーグルで検索しましたが、結論に達することはできません。
stdafx.hコード ベースがかなり大きく、プリコンパイル済みヘッダーによってコンパイル時間が短縮されるため、当然、Visual Studio に残しておきたいと思います。
しかし、問題は Linux で何をするかです。これは私が見つけたものです:
- そのままにしておき
stdafx.hます。gcc は VC++ よりもかなり高速にコードをコンパイルします (または、私の Linux マシンの方が強力なだけです ... :)) ので、このオプションに満足しているかもしれません。 hereからのアプローチを使用します-次のようにし
stdafx.hます(USE_PRECOMPILED_HEADERVSのみに設定):#ifdef USE_PRECOMPILED_HEADER ... my stuff #endifhereのアプローチを使用してください -各 cpp ファイル
/FIに暗黙的に含めるためにVC++ をコンパイルします。stdafx.hしたがって、VS では、コードを簡単に切り替えて、プリコンパイル済みヘッダーなしでコンパイルすることができ、コードを変更する必要はありません。
私は個人的に依存関係が嫌いで、混乱stdafx.hが大きなコードベースを押し進めています。したがって、このオプションは私にとって魅力的です。Linuxstdafx.hでは/FI.- Linux では
stdafx.h、プリコンパイル済みヘッダーとしてのみコンパイルします (Visual Studio を模倣)。
あなたの意見?問題を処理するための他のアプローチはありますか?