3

私は 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 ===|

また、クラスを作成しているとき。Workspaceアイコンは、作成したばかりのクラスの .cpp フォルダーと .h フォルダーを含めることになっています (私は信じています)。

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

私が使用しているコードは次のとおりです。

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

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

using namespace std;

int main()
{

    Burrito bo;
    return 0;
}

クラスファイル: Burrito.h

#ifndef BURRITO_H
#define BURRITO_H

class Burrito
{
    public:
        Burrito();

};

#endif // BURRITO_H

ブリトー.cpp

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

using namespace std;

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

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

前もって感謝します

編集:

私は CodeBlocks を使用しており、32 ビット ウィンドウを使用しています。

4

2 に答える 2

2

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

追加情報 以下の情報は、この問題に直接関連するものではありません (または、Windows を使用しているため、少なくともそのようには見えません) が、必要に応じて開発者としての成長を支援することを目的としています。

ただし、コマンド ライン コンパイラ (MingW など) を使用するか、*nix 環境で作業する場合は、各オブジェクトを明示的にコンパイルする必要があることに注意することが重要です (リンクせずに; gcc/mingw では、このフラグは です-c) 。 . 次に、いくつかのリンクされていないオブジェクトのコンパイルの最後に、すべてのオブジェクトとメイン ソース ファイルをまとめてコンパイルし (今回はリンクを使用)、1 つの実行可能ファイルが作成されます。

ただし、コマンド ライン コンパイラを試す前に、IDE を使用してこのプロセスを実行することに慣れる/慣れることをお勧めします。いずれにせよ、それは一般的に自動化されたプロセスであるため (つまり、ほとんどの開発者は現実的にはこの種の Makefile を作成することになります)、これを行わなくても (とにかくすぐに) 多くを失うことはありません。勉強する上で気をつけたいことばかりです。

于 2012-04-30T14:03:55.130 に答える
1

コマンドラインコンパイラを使用して、これを試すことができます:

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

これにより、2 つの .cpp ファイルがリンクされて実行可能ファイルが作成され、入力するだけでその実行可能ファイルを実行できます。

./executable_name
于 2014-02-02T05:54:47.820 に答える