- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Visual Studio2008でヘッダファイルが更新されない)
Visual Studio2008でヘッダファイルが更新されない
このQ&Aのポイント
- C++で作成したプログラムで、Visual Studio2008を使用しています。
- ヘッダファイルを変更しても反映されず、リビルドしても変更が反映されない問題が発生しています。
- init.hファイルのファイル名を変更したり、includeファイルを書き換えることで問題が解決しますが、設定の方法がわからず困っています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
同じファイル名のヘッダファイル(今回はinit.h)が2つできていたりしませんか ? 表示されているヘッダファイルとプロジェクトに登録されているヘッダファイルが別物であれば同じような現象になるような気がしますが ? 一度表示されているヘッダファイルを「閉じ」て、 (1)ソリューションイクスプローラのヘッダファイルにinit.hが登録されていたら、それを一旦削除して、もう一度追加しなおして、 (2)ソリューションイクスプローラのヘッダファイルにinit.hが登録されていなければ、追加して、 新しく登録されたinit.hを使用してみたらどうでしょうか。
その他の回答 (1)
- hidebun
- ベストアンサー率50% (92/181)
回答No.1
普通はリビルドとかでいけると思うんだけど、何か壊れたのかな。 でも、そんなに単純なファイル構成なら、プロジェクトを再作成 しても大した手間ではないような気もする。 で、プロジェクトの親フォルダってなんだろかな。 ソリューションエクスプローラには、ソースファイル・ヘッダーファイル ってフォルダがあると思うんだけど、そこにそれぞれ、 main.c, init.hが表示されているということ?
質問者
補足
ご教示ありがとうございます。「親フォルダ」というあいまいな用語を使ってすみません。親フォルダは、プロジェクトのあるフォルダを意味していました。Windowsのエクスプローラ上、2つのファイルは、同一フォルダ内にあります。また、ご指摘のようにソリューションエクスプローラ上もプロジェクト内にあります。よろしくお願いします。
補足
ご教示ありがとうございました。 最初にヘッダファイルのDefine定数を変更してビルドしました。mainではこの変更は反映されないことを確認しました。 (1)の削除のときに、「クリア」と「完全削除」を聞かれたので、init.hをあらかじめ別名でコピーしておいて、完全削除を選びました。するとinit.hファイルはディスクから完全削除されました。コピーしておいたヘッダファイルを戻します。この時点で、ビルドを実行するとソリューションエクスプローラにヘッダファイルがないのにビルドが実行できて、定数の変更も反映されることを確認しました。 何となく気持ち悪いのですが、(2)は不要のままプログラム開発してもビルドできてしまうのはどこかの設定が悪いのでしょうか? また、(1)を実行しないとヘッダファイルの変更が反映されないのはなかなか効率が悪く困っております。何か根本的な原因があるのでしょうか?(オプション設定等?)よろしくお願いします。