C 學習筆記 一 g 編譯

2021-10-07 17:56:10 字數 1117 閱讀 8097

程式 g++ 是將 gcc 預設語言設為 c++ 的乙個特殊的版本,鏈結時它自動使用 c++ 標準庫而不用 c 標準庫。通過遵循原始碼的命名規範並指定對應庫的名字,用 gcc 來編譯鏈結 c++ 程式是可行的,如下:

gcc main.cpp -lstdc++

-o main

g++ helloworld.cpp
由於命令列中未指定可執行程式的檔名,編譯器採用預設的a.out

g++ helloworld.cpp -o helloworld
g++ runoob1.cpp runoob2.cpp -o runoob
g++

-g -wall -std=c++

11 main.cpp

選項

解釋-ansi

-c只編譯並生成目標檔案。

-dmacro

以字串"1"定義 macro 巨集。

-dmacro=defn

以字串"defn"定義 macro 巨集。

-e只執行 c 預編譯器。

-g生成除錯資訊。gnu 偵錯程式可利用該資訊。

-idirectory

指定額外的標頭檔案搜尋路徑directory。

-ldirectory

指定額外的函式庫搜尋路徑directory。

-llibrary

連線時搜尋指定的函式庫library。

-m486

針對 486 進行**優化。

-ofile 生成指定的輸出檔案。用在生成可執行檔案時。

-o0不進行優化處理。

-o或 -o1 優化生成**。

-o2進一步優化。

-o3比 -o2 更進一步優化,包括 inline 函式。

-shared

生成共享目標檔案。通常用在建立共享庫時。

-static

禁止使用共享連線。

-umacro

取消對 macro 巨集的定義。

-w不生成任何警告資訊。

-wall

生成所有警告資訊。

C 編譯連線總結(一) g

快速入門例子 g c a.cpp 編譯檔案,生成目標檔案 a.o g a.o o abc 連線 並重命名為可執行檔案 abc g c a.cpp o a 之後 g a 會儲存的,親驗 g a.cpp 編譯連線一起,生成a.out g a.cpp o hello 生成a.out並命名為hello 涉及...

C 學習筆記 分別編譯

分別編譯要點與引申 將常量的定義放在同乙個標頭檔案中 將型別的定義寫在標頭檔案中,最好不要把多個型別定義寫在同乙個標頭檔案中 禁止將全域性變數的定義寫進標頭檔案中 每乙個源程式檔案有效語句所在行最好控制在 50 500 行之間 程式的實際執行在呼叫 main 之前就開始進行了,在 main 結束以後...

Sqlite學習筆記 一 編譯安裝

sqlite簡介 編譯 安裝 拿到原始碼後,我們看到除了sqlite3.c原始檔,還有shell.c檔案。因為sqlite3.c只是乙個動態庫的原始檔,因此通過整合shell.c可以生成sqlite執行碼,簡單來說就是sqlite3的客戶端。1 編譯命令列管理工具 gcc shell.c sqlit...