簡體   English   中英

包含類並使用g ++進行編譯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM