みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VC++ 6.0 プリコンパイル済みヘッダーについて

プログラミング初心者です。

構文解析のためにbisonとFlexを勉強しています。
これらを、VC++ 6.0で使用できるように設定し、いざビルドを
行ったところエラーが発生しました。
どうやら原因はメニューの「プロジェクト(P)」→「設定」→
「C/C++」→カテゴリ「プリコンパイル済みヘッダー」で
「プリコンパイル済みヘッダーを使用する」にチェックが入っていた
ためで、これを「プリコンパイル済みヘッダーを使用しない」にした
ところうまくビルドすることができました。

ですが、どうしてうまくいったのかがわかりません。お詳しい方がいらっしゃいましたら、どうかお教えください。

投稿日時 - 2006-10-22 14:24:07

QNo.2489616

暇なときに回答ください

質問者が選んだベストアンサー

プリコンパイルヘッダというのは、ヘッダファイル解析時間の削減を目的として、ヘッダ部をコンパイラが独自にキャッシュするものです。
VCの場合、この設定を有効にした全てのソースの先頭で、必ず「設定で指定したプリコンパイルヘッダ」をincludeしていなければいけない仕様です。
デフォルトのプリコンパイルヘッダはstdafx.hですので、各ソースの先頭の命令は #include "stdafx.h"から始まる必要があります。
# 仕組み的には、stdafx.hの内容としてコンパイル済みのデータを持ってきて処理するためらしいですが…うっとうしいのは確か。

で、コンパイラコンパイラが生成するソースにはこれらが無いためエラーになります。
そして、使わない設定にすると、この必要が無くなってビルドが通ります。
# 一応、ソースの先頭にincludeを追加してもビルドは成功するはずです。

投稿日時 - 2006-10-22 19:27:25

お礼

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

投稿日時 - 2008-05-11 17:46:08

ANo.1

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問