常用的gcc命令

2021-06-02 13:13:23 字數 1392 閱讀 9345

gcc命令用於生成c語言的庫

g++用於生成c++的庫

使用g++ --help檢視幫助 

g++  class\first.cpp -static -g -o first

編譯 first.cpp  生產乙個 名字為first.exe的檔案

生成.o檔案

g++ -o0 -g3 -wall -c -fmessage-length=0 -ofirst.o first.cpp

gcc -c ***.c -o ***.o //編譯成obj

生成dll

gcc -shared ***.c -o ***.dll //編譯成dll, 注意, cygwin-gcc預設匯出所有的function.

ar r ***.lib ***1.o ***2.o //打包多個obj成乙個lib (非連線)

gcc ***.c ./l aaa.dll -o ***.exe //引用外部dll生成exe

gcc ***.c yyy.c -o zzz.exe //連線多個c檔案, 生成exe.

gcc -i"/bin/include" -c ***.c -o ***.o //引用/bin/include目錄下標頭檔案,生成obj

gcc -l"dll.a" ***.c -o ***.exe //連線dll.a, 生成exe

額外的,也可以寫自己的匯出lib檔案, 以方便其餘程式引用dll (如cobol2002編譯器就不支援直接引用dll, 這個時候可以寫乙個def, 並匯出lib檔案, 便於cobol2002使用)

具體方法如下:

1. 編譯生成dll :

如: gcc -shared mytest.c -o mytest.dll, 生成mytest.dll.

2. 寫乙個def檔案 (這裡是mytest.def), 簡單的格式大致如下:

library mytest //這裡的mytest對應於mytest.dll

exports

allocmemory @1 //匯出的第乙個function : 對應於mytest.dll裡面的allocmemory(...), 注意, 引數可不用寫

readmemory @2 //匯出的第二個function : 對應於mytest.dll裡面的readmemory-function.

//注意: function可以不用全部匯出, 可以只選擇你需要的function.

3. 用lib工具(vc6有提供)生成lib檔案 (這裡是mytest.lib) :

lib /def:mytest.def //預設生成的名稱為mytest.lib.

4. 到此生成完畢, 連線的時候只需要引用mytest.lib即可, 但要注意***.exe 和mytest.dll要放在同一目錄下.

可以用 gcc --help 檢視具體的命令 etc...

gcc的常用編譯命令

gcc c 源檔名 編譯不鏈結,生成.o檔案 gcc c test.c test2.cgcc 輸入檔案 o 輸出檔名 指定輸出檔案,生成可執行檔案 gcc test.o test.o o testgcc e c 源檔名 o ci.i e表示把預處理的結果匯出到ci.i檔案中 c表示不刪除注釋 gcc...

gcc常用編譯命令

2。gcc的基本用法 gcc test.c這樣將編譯出乙個名為a.out的程式 gcc test.c o test這樣將編譯出乙個名為test的程式,o引數用來指定生成程式的名 字3。為什麼會出現undefined reference to xx 錯誤?首先這是鏈結錯誤,不是編譯錯誤,也就是說如果只...

GCC常用命令

1.gcc 原先指 gun c complier,現指 gun complier collections。2.mingw 3.常用命令 編譯過程分為四個階段進行,即預處理 也稱預編譯,preprocessing 編譯 compilation 彙編 assembly 和連線 linking prepr...