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