2016-03-28 14 views
0

とヘッダのinclude windowsとlinuxでは、stdafx.hはLinux上では動作しません。これはVisual Studio上で必須です。は、私は私のCに次++コードを配置しようとしたのifdef

ifdefでインクルードを使用する別の方法はありますか?

+0

タイプミスを防ぐために、エラーメッセージをコピー/貼り付けする必要があります。 –

+1

PCHには面白いルールがあります。それらの1つは、条件付きブロックでは使用できないということです(もう1つはソースファイルの最初の非コメント文でなければなりません)。 '' stdafx.h ''を無条件にインクルードする必要がありますが、空の(または論理的に空の、あるいは論理的には同等のファイル)' stdafx.h'ファイルをLinuxに提供する必要があります。 –

+0

@JonathanLeffler知っておいてよかった! – Jayn

答えて

0

残念ながら、あらかじめコンパイルされたヘッダーとMicrosoft MSVCを使用してこの操作を行うことはできません。 MSVCは、その行の前にあるすべてのコード(およびすべてのガベージ)行を完全に無視します。その結果、#endifは予期せぬことになります。

これを#ifdef _WIN32とし、stdafx.hの中には何を入れませんか。

関連する問題