none
プリコンパイル済ヘッダーを使用しない(「#include <stdafx.h>」を記載せずに)ビルドしたい

    質問

  • Visual Studio Community 2017 を使用しています。

    Windows用以外のコンパイラでも流用可能なCソースコードを作成しようとしているのですが、
    VSではソースコードを新規作成すると自動で「#include <stdafx.h>」が挿入されます。

    他のコンパイラ(例えばgccやminGW)でもコンパイルできるソースコードにしたいので、
    「#include <stdafx.h>」の記載を削除してから、
    プロジェクトのプロパティで「プリコンパイル済ヘッダーを使用しない」を選択してビルドしたところ、
    以下メッセージが表示されてしまいビルドに失敗します。

    「プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?」

    構成マネージャーで「アクティブ ソリューション プラットフォーム」を
    「x86」→「x64」に変更したところ、ビルドが成功したのですが、
    この方法では、VSでは32Bit用にビルドできないということになってしまいます。

    「x86」向けビルド用で、なおかつ、ソースコードから「#include <stdafx.h>」を削除するというのは可能でしょうか?

    宜しくお願いします。
    2018年5月1日 4:27

回答

  • x86 向けビルドの設定で、プリコンパイル済みヘッダーの使用の設定を消せていないのでは?
    「構成」や「プラットフォーム」を選択した上で、「使用しない」となっているかを確認してください。

    なお、Visual C++ のプロジェクトは、プロジェクト全体の設定と、c ファイルや cpp ファイル個別の設定もできるようになっています。
    プロジェクト全体で設定できていても、特定の c/cpp ファイルでエラーになる場合は、そのファイルを選択してプロパティを確認してください。

    2018年5月1日 8:26
    モデレータ

すべての返信

  • x86 向けビルドの設定で、プリコンパイル済みヘッダーの使用の設定を消せていないのでは?
    「構成」や「プラットフォーム」を選択した上で、「使用しない」となっているかを確認してください。

    なお、Visual C++ のプロジェクトは、プロジェクト全体の設定と、c ファイルや cpp ファイル個別の設定もできるようになっています。
    プロジェクト全体で設定できていても、特定の c/cpp ファイルでエラーになる場合は、そのファイルを選択してプロパティを確認してください。

    2018年5月1日 8:26
    モデレータ
  • ご指摘のとおりでした。

    構成マネージャー画面での「アクティブソリューションプラットフォーム」は実行環境ターゲットを指定するのみで、

    プロパティ画面はx86用とx64用それぞれの設定を指定する必要があるのですね。

    勉強になりました。

    ありがとうございました。

    2018年5月1日 12:10