2012-04-30 11 views
2

私はC++には本当に新しく、別のファイルでクラスを作成しようとしていて、問題に遭遇しました。私は基本的にチュートリアルhttp://thenewboston.org/watch.php?cat=16&number=15をnewboston単語からコピーしました。しかし、物事のためには動作しません。メインファイルを実行しようとすると、このエラーが発生します。別のファイル(初心者)でクラスを作成する

C:\Users\Akavall\Desktop\C++ Stuff\New C++ stuff\class_try.o:class_try.cpp|| undefined reference to `Burrito::Burrito()'| 
||=== Build finished: 1 errors, 0 warnings ===| 

また、私はクラスを作成しています。 ワークスペースアイコンは、作成したばかりのクラスの.cppと.hフォルダを含んでいるはずですが、自分自身が座っています。

私のパスはどこか正しく設定されていないと思いますが、その修正方法はわかりません。助言がありますか?

メインファイル(class_try.cpp)

#include <iostream> 
#include "Burrito.h" 

using namespace std; 

int main() 
{ 

    Burrito bo; 
    return 0; 
} 

クラスファイル:

#ifndef BURRITO_H 
#define BURRITO_H 

class Burrito 
{ 
    public: 
     Burrito(); 

}; 

#endif // BURRITO_H 

Burrito.cpp

Burrito.hここ

は、私が使用していたコードです
#include "Burrito.h" 
#include <iostream> 

using namespace std; 

Burrito::Burrito() 
{ 
    cout<<"something silly"<<endl; 
} 

この問題を解決するにはどうすればよいですか?

私はコードブロックを使用しています、と私は32ビットWindows上で午前:

は、事前に

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

+0

を入力して、2つの.cppファイルをリンクし、実行可能ファイルを作成し、その実行可能ファイルを実行することができますどのようなあなたはコンパイラを使用していますか? – juanchopanza

+2

Burrito.oはリンクされていないようです。たぶんBurrito.cppはコンパイルされていない、プロジェクトに追加しようとしましたか? – Fanael

答えて

2

リンクしたチュートリアルのようなMSVCを使用している場合は、まずプロジェクトを作成する必要があります。プロジェクトを作成したら、インクルード/コンパイルするすべてのヘッダ(.h)ファイルとソース(.cpp/.cxx)ファイルを追加します。今、MSVCはこの点を容易にしています。 (すべてがプロジェクトに正しく追加されている限り)コンパイルするだけで、順番にコンパイルできます。

追加情報 以下の情報は、この問題に直接関係ないです(あるいは、少なくとも、あなたは、Windowsにしているので、そのようには見えません)、しかし、あなたがしたい場合は開発者として、あなたの成長を支援するためのものですそれ。

ただし、コマンドラインコンパイラ(つまりMingW)を使用するか、* nix環境で作業する場合は、明示的に各オブジェクトをコンパイルする必要があります(gcc/mingwこのフラグは-cです)。次に、リンクされていないオブジェクトをいくつかコンパイルし終わったら、すべてのオブジェクトとメインソースファイルを一緒にコンパイルして(この時間にリンクして)、実行可能ファイルを1つ作成します。

ただし、IDE経由でこのプロセスを行うのに慣れ親しんだ/慣れ親しんだコマンドラインコンパイラを試す前にお勧めします。とにかく一般的には自動化されたプロセスです(つまり、ほとんどの開発者はこのようなことのためにMakefileを書くことになります)。それはあなたが学ぶにつれて気づくべきことです。

+0

ありがとう!私はそれを得ました、すべてが今働き、余分な情報に感謝します。 – Akavall

1

使用してコマンドラインコンパイラあなたはこれを試すことができます。

g++ class_try.cpp Burrito.cpp -o executable_name 

これだけ

./executable_name 
+0

あなたは '-o'が欠けていると思います。 'g ++ class_try.cpp Burrito.cpp -o executable_name'または' g ++ -std = C++ 11 class_try.cpp Burrito.cpp -o executable_name'を実行します。 – Akavall