我有一個C++程序,大約7個頭文件和7個.cpp
文件都直接卡入到一個文件中。如果我試圖在CodeBlocks中編譯它,一切都可以正常工作。沒有問題。Codeblocks編譯,GCC不
但是,我試圖讓它在Unix命令行下工作。我通過鍵入
g++ main.cpp
這應該產生一種叫a.out
(默認)文件,我跑做一個基本的編譯。
但是,我得到一個未定義的參考錯誤的負載。爲什麼會發生這種情況,我該如何解決?
我有一個C++程序,大約7個頭文件和7個.cpp
文件都直接卡入到一個文件中。如果我試圖在CodeBlocks中編譯它,一切都可以正常工作。沒有問題。Codeblocks編譯,GCC不
但是,我試圖讓它在Unix命令行下工作。我通過鍵入
g++ main.cpp
這應該產生一種叫a.out
(默認)文件,我跑做一個基本的編譯。
但是,我得到一個未定義的參考錯誤的負載。爲什麼會發生這種情況,我該如何解決?
我覺得這個問題很奇怪,因爲CodeBlocks使用G ++。
當您用命令行編譯g++
,你需要指定所有需要編譯和鏈接源文件:
g++ -o main main.cpp file1.cpp file2.cpp
您還需要包括與-l
選項庫。這些庫取決於您的操作系統和平臺。
代碼塊是否可以顯示它傳遞給g ++的命令行? –
我正在使用Unix,我將如何指示庫?默認包含任何庫嗎? – user3308043
誰知道,誰在乎,它的效果很好。非常感謝命令行的幫助!偉大的提示! – user3308043
那麼其他6個.cpp文件呢? –
未定義的引用錯誤是針對我的每個析構函數和一些隨機方法。 – user3308043
如果main.cpp在其他源文件中使用函數,則需要在調用g ++時列出它們。 –