1

重複の可能性:
未定義の参照/未解決の外部シンボルエラーとは何ですか?それを修正するにはどうすればよいですか?

これは単純な問題ですが、まだ問題があります。私は同様の質問を見てきましたが、それらは私が探しているものよりも少し複雑に見えます。

私はCode::Blocks10.05を使用しています。

クラスファイルへの未定義の参照を取得しています。これがリンカーエラーであることは知っていますが、修正方法がわかりません。私はファイルのリンクについてあまりよく知らないのではないかと思います。

s\Desktop\the cool container\Test 1\Class2.o:Class2.cpp|| undefined reference to `Burrito::Burrito()'|
||=== Build finished: 1 errors, 0 warnings ===|

私のファイルはすべて同じフォルダにあります。私のオブジェクトは何もしません。これを試しているだけで、別のクラスからオブジェクトを作成してもエラーが発生しないはずです。

ええ、これはTheNewBostonチュートリアルからのものです...彼はこの作品を手に入れることができたので、私はそれを機能させることができるはずです。

#include "Burrito.cpp"Class2.cppに含めると機能しますが、彼はそれを含めませんでした。


------------ Class2.cpp -----------------

#include <iostream>
#include "Burrito.h"
using namespace std;
int main(){

  Burrito Bo;
    return 0;
}

---------------ブリトー.h----------------

#ifndef BURRITO_H
#define BURRITO_H


class Burrito
{
    public:
        Burrito();

};

#endif // BURRITO_H

--------------- Burrito.cpp -----------------

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

using namespace std;
Burrito::Burrito()
{

}
4

1 に答える 1

0

#include "Burrito.cpp"Class2.cppに含めると機能しますが、彼はそれを含めませんでした。

それが解決策になることはめったにありません(私は決して言いません)。#include他のソースファイルのソースファイルと思われるものを使用しないでください。解決策は、コンパイルが必要なすべてのファイルをコンパイルし、リンカにリンケージの問題を処理させることです。

Burrito.cppをコンパイルしなかったので、もちろんリンクの問題が発生しています。解決策は簡単です。Burrito.cppをコンパイルし、リンカーに提供するファイルのセットにBurrito.oを追加します。または、Class2.cppとBurrito.cppの両方をコンパイラに提供して、出力としてオブジェクトファイルではなく実行可能ファイルを作成することもできます。

于 2012-10-24T15:27:43.580 に答える