2017-01-29 2 views
-1

私は愚かに聞こえるかもしれない何かを尋ねたいと思っていますが、それを乗り越える方法は分かりません。Dev-C++を使用してC++プログラムでコンパイルされた間違ったファイル5.11

ヘッダーファイルと2つのcppファイルを持つC++プログラムを作成しました。そのうちの1つにmain.Iが含まれています。いくつかのインライン関数を持ついくつかのクラスの定義があります。クラスを定義し、cppファイルの1つで定義します(mainを持つものではありません)。 プログラムはコンパイルされ、うまく動いていますが、私はクラスのインライン関数のいくつかをいくつか変更したいと思っていました。私はこれらの変更を行い、プログラムをコンパイルして実行しましたが、新しいバージョンではなく以前のバージョンのヘッダーファイルを使用していました。

新しいファイルを使用して新しいプロジェクトを作成しようとしましたが、その場合でもプログラムは実際に古いバージョンを使用します。

私は窓の解決10

で12月-C++ 5.11を使用しています。私はファイル名を変更する必要があるように見えます。どうもありがとうございました!!

+0

ビルドの間に 'クリーン'をしましたか?新しいプロジェクトについては、どういうわけか古いファイルをまだ含んでいると思います。ヘッダー名を変更して再試行してください。問題の特定に役立つ可能性があります。または、(多くのコンパイラで)引っ張られるヘッダファイルを表示するコンパイル行に-Hを追加してください。 – ccpgh

+0

名前の変更!どうもありがとうございました!! :D –

答えて

0

一部のビルドシステムでは "インクリメンタル"ビルドしか実行されないため、ソースファイルを変更するとそのソースファイルが再コンパイルされますが、プロジェクト全体を再ビルドしない限り元のヘッダーの内容は引き続き使用されます。プリコンパイルされたヘッダーを使用している場合はさらにそうです。また、インライン関数に影響を与える可能性があります。その内容は、再構築がトリガーされていないソースファイルに "インライン"されています。

ヘッダーのファイル名を変更すると、多くの場合、この "キャッシュ"が回避されますが、プロジェクト全体を最初から再構築するようIDEに指示するのが正しい方法です。 Dev-C++では、このオプションは「Rebuild All」と呼ばれています。ヘッダーファイルを変更するたびにこのオプションをお勧めします。

(GNU Makefilesを使用している場合は、make cleanを次のmake allの前に実行します)。

関連する問題