2017-02-03 10 views
0

最近私はC++を学び始めました。私はビジュアルスタジオ2015を使っています。しかし、アップロードする前に#include stdafx.hを手動で削除しなければなりません。私のクラスのテストサーバーに送信するか、次のようなエラーを返します。the error from test serverあなたはVisual Studioでstdafx.hをC++でコーディングするときに削除できますか?

なぜこの問題が起こっているのか知りたいのですが。私の推測では、このことはWindowsとx86ベースのOSに限定されていますか? ご協力いただければ幸いです。 :D

+1

アップロードするファイルに** stdafx.h **を含めてください。 –

+0

これはどのタイプのサーバーですか?私はstdafx.hはWindows固有のOSだと思いますか? – mreff555

答えて

1

すべてソースをアップロードする必要があります。 stdafx.hはそれに関して特別ではありません。もちろん、あなたのコースで1つの.cppアップロードが制限されている場合、そのコースにはstdafx.hを使用できません。

0

stdafx.hは、Visual Studioプロジェクトのプリコンパイル済みヘッダーの既定の名前です。しかし、あなたは確かに他の環境でこの名前のファイルを持つことができます。プロジェクトのプロパティページ(C/C++ - >プリコンパイル済みヘッダー - 詳細についてはhereを参照)でプリコンパイル済みヘッダーとして指定されている場合、Visual Studioコンパイラはこのヘッダーを他のヘッダーと少し異なります。たとえば、プリプロセッサの定義が異なるこのファイルの複数のインクルードは、プリコンパイルされたヘッダーである場合には無視されます(これは一般的ではありませんが、注意する必要があります)。

Visual Studio以外の環境への移植性を容易にしたい場合は、Visual Studioプロジェクトでプリコンパイル済みヘッダーを無効にする方が簡単です。コード内でstdafx.hファイルを引き続き使用する場合は、テストコンパイルサーバーにファイルをアップロードする必要がありますが、修正する必要がある場合もあります。

+0

他のC++コンパイラに関する限り、** stdafx.h **は単なる別のヘッダファイルです。 –

+0

stdafx.hは「ちょっと別のヘッダー」ですが、私が答えて言ったように、Visual Studioプロジェクトのセットアップでstdafx.hをプリコンパイル済みのヘッダーとして使用すると、別のビルドシステムでコンパイルされます。 PCHは他のヘッダーとわずかに異なります。 – MuertoExcobito

+0

** stdafx.h **を他のビルドシステムにコピーすると、プラットフォーム固有のものはないと仮定してコンパイルされますが、それは他のファイルでも同じです。 –

関連する問題