2012-04-30 24 views
2

我真的很陌生,我試圖在一個單獨的文件中創建一個類,並且遇到了問題。我基本上從newboston word文字複製教程http://thenewboston.org/watch.php?cat=16&number=15。但是,事情不行。當我嘗試運行主文件時出現此錯誤:在單獨的文件中創建類(初學者)

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; 
} 

類文件: Burrito.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() 
{ 
    cout<<"something silly"<<endl; 
} 

我該怎麼辦才能解決這個問題?

預先感謝您

編輯:

我使用的代碼塊,我在32位Windows。

+0

鏈接你的兩個.cpp文件,並創建一個可執行文件,你可以運行可執行文件是什麼你使用的是編譯器嗎? – juanchopanza

+2

它看起來像Burrito.o沒有被鏈接。也許Burrito.cpp甚至沒有被編譯,你有沒有試過把它添加到項目中? – Fanael

回答

2

如果您使用的MSVC就像您所鏈接的教程那樣,您需要先創建一個項目。創建項目後,添加要包含/編譯的所有頭文件(.h)和源文件(.cpp/.cxx)。現在,MSVC從這一點變得很容易;你可以簡單地進行編譯(只要所有東西都被正確地添加到你的項目中),它就會爲你編譯東西。

額外信息 下面的信息不是直接有關這個問題(或至少似乎不是這樣的,因爲你是在Windows上),而是意在幫助你成長爲一個開發者,如果你想它。但是,如果你決定使用命令行編譯器(即MingW)或在* nix環境中工作,注意到需要顯式編譯每個對象(不鏈接;在gcc/mingw中)是很重要的這個標誌是-c)。然後,在編譯幾個未鏈接的對象時,將所有對象和主源文件一起編譯(連接這次),並創建一個可執行文件。

但是,在嘗試命令行編譯器之前,我會建議您先熟悉/熟悉通過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