[英]include class and compile with g++
我是C ++的初學者,並且使用unix。 所以這是我的問題。
我已經在main函數中寫了幾行,並且我需要一個在c_lib-庫中定義的函數。
main.cpp:
#include <iostream>
#include "c_lib.cpp"
int main()
{
return 0;
}
我想在終端上執行它,所以我寫了
g++ -c c_lib.cpp
g++ -c main.cpp
g++ -o run c_lib.o main.o
直到這里,沒有錯誤報告。
然后
./run
我得到錯誤
錯誤:./ run:沒有這樣的文件或目錄
怎么了?
通常不包含.cpp
,通常僅包含標頭。 標頭通常包含定義其他.cpp
代碼接口的聲明。
您能告訴我們c_lib的源代碼嗎? 這可能會有所幫助。
由於c_lib的源是#include
d,因此無需單獨編譯。 實際上,這可能會/將導致錯誤(首先想到多個定義)。 您只需要執行以下操作:
g++ -o run main.cpp
在這種情況下編譯您的代碼。
(使用標頭( .h
)時,您將需要分別編譯實現( .cpp
))
在打開警告的情況下進行編譯:
g++ -Wall -Wextra -o run main.cpp
如果您的代碼有問題,您將獲得更多輸出。
gcc是否正在輸出run
文件? 您可以通過在終端中調用ls
進行測試(或ls run
僅顯示可執行文件(如果存在))。
如果存在可執行文件,則可能是該可執行文件未標記為可運行。 如果存在問題,我將繼續討論,因為它不在站點的一般范圍內(盡管仍然相關)
首先,您不應將源文件包含到另一個源中。 您應該創建一個頭文件並在其中放置聲明(允許main()
從c_lib.cpp調用函數或使用全局變量(如果有))
當運行g++
無論操作成功與否,您都必須查看它的輸出。 在您的情況下,該操作失敗,因此未創建可執行文件run
。
通常,您不手動調用編譯器,而是編寫一個makefile
並讓make
實用程序調用g++
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.