簡單的gcc語法:
如果你只有乙個檔案(或者只有幾個檔案),那麼就可以不寫makefile檔案(當然有makefile更加方便),用gcc直接編譯就行了。在這裡我們只介紹幾個我經常用的幾個引數,第一是 「-o」,它後面的引數表示要輸出的目標檔案,再乙個是 「-c」,表示僅編譯(compile),不連線(make),如果沒有」-c」引數,那麼就表示連線,如下面的幾個命令:
gcc –c test.c,表示只編譯test.c檔案,成功時輸出目標檔案test.o
gcc –c test.c –o test.o ,與上一條命令完全相同
gcc –o test test.o,將test.o連線成可執行的二進位制檔案test
gcc –o test test.c,將test.c編譯並連線成可執行的二進位制檔案test
gcc test.c –o test,與上一條命令相同(與上一條引數位置互換)
gcc –c test1.c,只編譯test1.c,成功時輸出目標檔案test1.o
gcc –c test2.c,只編譯test2.c,成功時輸出目標檔案test2.o
gcc –o test test1.o test2.o,將test1.o和test2.o連線為可執行的二進位制檔案test
gcc –c test test1.c test2.c,將test1.o和test2.o編譯並連線為可執行的二進位制檔案test
注:如果你想編譯cpp檔案,那麼請用g++,否則會有類似如下莫名其妙的錯誤:
cc3r3i2u.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0』......
還有乙個引數是」-l」引數,與之緊緊相連的是表示連線時所要的鏈結庫,比如多執行緒,如果你使用了pthread_create函式,那麼你就應該在編譯語句的最後加上」-lpthread」,」-l」表示連線,」pthread」表示要連線的庫,注意他們在這裡要連在一起寫,還有比如你使用了游標庫curses,那麼呢就應該在後面加上」-lcurses」,比如下面的寫法:
gcc –o test test1.o test2.o –lpthread –lcurses
當然gcc的引數我感覺有幾百個,不過我們平時在x86機器上用的就這麼些。
GCC內嵌彙編語法
內嵌彙編語法如下 asm 彙編語句模板 輸出部分 輸入部分 破壞描述部分 共四個部分 彙編語句模板,輸出部分,輸入部分,破壞描述部分,各部分使用 格開,彙編語句模板必不可少,其他三部分可選,如果使用了後面的部分,而前面部分為空,也需要用 格開,相應部分內容為空。例如 asm volatile cli...
gcc嵌入彙編語法
以前學gcc嵌入彙編時的一些筆記,看一下對gcc的嵌入彙編比較有用處 1 格式 asm 以回車或分號分隔的彙編指令 以逗號分隔的輸出運算元 以逗號分隔的輸入運算元 以逗號分隔的受影響的暫存器或記憶體 2 輸出運算元表示彙編指令執行結果,輸入運算元表示彙編指令執行時的輸入值 3 每個輸出和輸入運算元都...
gcc的簡單應用
執行 gcc egcs 執行 gcc egcs gcc 是 gnu 的 c 和 c 編譯器。實際上,gcc 能夠編譯三種語言 c c 和 object c c 語言的一種物件導向擴充套件 利用 gcc 命令可同時編譯並連線 c 和 c 源程式。int factorial int n 清單 main....