Linux装c编译器gcc,c编译器进阶之路,linux下的gcc c编译器使用教程
c編譯器的重要性不言而喻,從往期c編譯器文章中,如c編譯器優化、選定c編譯器等,想必大家對c編譯器均已有所了解。往期文章中,小編主要從宏觀方面為大家講解c編譯器,此外對于gcc c編譯器的講解也大多基于windows。本文中,小編將基于linux環境對gcc的基本使用加以講解。如果你正在學習如何在linux系統下使用gcc編譯器,不妨繼續往下閱讀哦。
首先使用gcc要在linux環境下,我們可以使用真正的linux系統(不過這么做可能有一些麻煩)或者使用一些windows下的虛擬軟件,可以使用虛擬機搭建的linux環境,這樣可以很方便的進行linux開發。可以下載安裝一個虛擬機軟件,方法很簡單和安裝普通軟件一樣。(g++就是c++的使用)
在Linux系統中,可執行文件沒有統一的后綴,系統從文件的屬性來區分可執行文件和不可執行文件。而gcc則通過后綴來區別輸入文件的類別,下面介紹gcc所遵循的部分約定規則。
.c為后綴的文件,C語言源代碼文件;
.a為后綴的文件,是由目標文件構成的庫文件;
.C,.cc或.cxx 為后綴的文件,是C++源代碼文件;
.h為后綴的文件,是程序所包含的頭文件;
.i 為后綴的文件,是已經預處理過的C源代碼文件;
.m為后綴的文件,是Objective-C源代碼文件;
.o為后綴的文件,是編譯后的目標文件;
.s為后綴的文件,是匯編語言源代碼文件;
.S為后綴的文件,是經過預編譯的匯編語言源代碼文件
一. 常用編譯命令選項
假設源程序文件名為test.c。
1. 無選項編譯鏈接
用法:gcc test.c
作用:將test.c預處理、匯編、編譯并鏈接形成可執行文件。這里未指定輸出文件,默認輸出為a.out。
2. 選項 -o
用法:gcc test.c -o test
作用:將test.c預處理、匯編、編譯并鏈接形成可執行文件test。-o選項用來指定輸出文件的文件名。
3. 選項 -E
用法:gcc -E test.c -o test.i
作用:將test.c預處理輸出test.i文件。
4. 選項 -S
用法:gcc -S test.i
作用:將預處理輸出文件test.i匯編成test.s文件。
5. 選項 -c
用法:gcc -c test.s
作用:將匯編輸出文件test.s編譯輸出test.o文件。
6. 無選項鏈接
用法:gcc test.o -o test
作用:將編譯輸出文件test.o鏈接成最終可執行文件test。
7. 選項-O
用法:gcc -O1 test.c -o test
作用:使用編譯優化級別1編譯程序。級別為1~3,級別越大優化效果越好,但編譯時間越長。
二. 多源文件的編譯方法
如果有多個源文件,基本上有兩種編譯方法:
[假設有兩個源文件為test.c和testfun.c]
1. 多個文件一起編譯
用法:gcc testfun.c test.c -o test
作用:將testfun.c和test.c分別編譯后鏈接成test可執行文件。
2. 分別編譯各個源文件,之后對編譯后輸出的目標文件鏈接。
用法:
gcc -c testfun.c //將testfun.c編譯成testfun.o
gcc -c test.c //將test.c編譯成test.o
gcc -o testfun.o test.o -o test //將testfun.o和test.o鏈接成test
以上兩種方法相比較,第一中方法編譯時需要所有文件重新編譯,而第二種方法可以只重新編譯修改的文件,未修改的文件不用重新編譯。
運行程序 例如./a.out就可以運行程序。
以上便是此次小編帶來的“c編譯器”的相關內容,通過本文,希望大家對在linux環境下的gcc常用編譯命令選項以及gcc多源文件的編譯方法具備一定的認知和了解。如果你喜歡本文,不妨持續關注我們網站哦,小編將于后期帶來更多精彩內容。最后,十分感謝大家的閱讀,have a nice day!
總結
以上是生活随笔為你收集整理的Linux装c编译器gcc,c编译器进阶之路,linux下的gcc c编译器使用教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在Windows下载pygame
- 下一篇: 自动安装与配置复制batch脚本