2014-03-27 164 views
0

我有一個C++程序,大約7個頭文件和7個.cpp文件都直接卡入到一個文件中。如果我試圖在CodeBlocks中編譯它,一切都可以正常工作。沒有問題。Codeblocks編譯,GCC不

但是,我試圖讓它在Unix命令行下工作。我通過鍵入

g++ main.cpp 

這應該產生一種叫a.out(默認)文件,我跑做一個基本的編譯。

但是,我得到一個未定義的參考錯誤的負載。爲什麼會發生這種情況,我該如何解決?

+3

那麼其他6個.cpp文件呢? –

+0

未定義的引用錯誤是針對我的每個析構函數和一些隨機方法。 – user3308043

+0

如果main.cpp在其他源文件中使用函數,則需要在調用g ++時列出它們。 –

回答

2

我覺得這個問題很奇怪,因爲CodeBlocks使用G ++。

當您用命令行編譯g++,你需要指定所有需要編譯和鏈接源文件:

g++ -o main main.cpp file1.cpp file2.cpp 

您還需要包括與-l選項庫。這些庫取決於您的操作系統和平臺。

+1

代碼塊是否可以顯示它傳遞給g ++的命令行? –

+0

我正在使用Unix,我將如何指示庫?默認包含任何庫嗎? – user3308043

+0

誰知道,誰在乎,它的效果很好。非常感謝命令行的幫助!偉大的提示! – user3308043