- 相關(guān)推薦
怎么在Linux下運行C語言程序
Linux系統(tǒng)下某些編譯程序如果使用了原始套接字,就需要root權(quán)限才能運行,但是程序正在運行時又無法提升權(quán)限。那怎么在Linux下運行C語言程序呢?歡迎大家閱讀!更多相關(guān)信息請關(guān)注相關(guān)欄目!
Gedit
Gedit是一個簡單實用的文本編輯器,擁有漂亮的界面,支持語法高亮,比 Vim 更易上手。本教程將Gedit作為C代碼編輯器。
Gedit的安裝:
sudo apt-add-repository ppa:ubuntu-on-rails/ppa //添加ubuntu的軟件源
sudo apt-get //更新軟件列表
sudo apt-get install gedit-gmate //安裝
在當(dāng)前目錄下創(chuàng)建一個C源文件并打開:
touch test.c
gedit test.c
可以看到gedit的窗口,輸入:
#include#includeint main(){printf("Hello,Linux. ");exit(0);}
gedit 窗口截圖
注意:Gedit支持多種語言的高亮顯示,一般情況下能夠自動識別語言,如果識別錯誤,請在“編輯->高亮模式“下選擇C。
GCC
Linux下使用最廣泛的C/C++編譯器是GCC,大多數(shù)的Linux發(fā)行版本都默認安裝,不管是開發(fā)人員還是初學(xué)者,一般都將GCC作為Linux下首選的編譯工具。本教程毫不猶豫地使用GCC來編譯C程序。
保存文件后退出,打開終端并cd到當(dāng)前目錄,輸入下面的命令:
gcc test.c -o test
可以直接將C代碼編譯鏈接為可執(zhí)行文件。
可以看到在當(dāng)前目錄下多出一個文件 test,這就是可執(zhí)行文件。不像Windows,Linux不以文件后綴來區(qū)分可執(zhí)行文件,Linux下的可執(zhí)行文件后綴理論上是可以任意更改的。
當(dāng)然,也可以分步編譯:
1)預(yù)處理
gcc-Etest.c-otest.i
在當(dāng)前目錄下會多出一個預(yù)處理結(jié)果文件 test.i,打開 test.i 可以看到,在 test.c 的基礎(chǔ)上把stdio.h和stdlib.h的內(nèi)容插 進去了。
2)編譯為匯編代碼
gcc-Stest.i-otest.s
其中-S參數(shù)是在編譯完成后退出,-o為指定文件名。
3)匯編為目標(biāo)文件
gcc-ctest.s-otest.o
.o就是目標(biāo)文件。目標(biāo)文件與可執(zhí)行文件類似,都是機器能夠識別的可執(zhí)行代碼,但是由于還沒有鏈接,結(jié)構(gòu)會稍有不同。
3) 鏈接并生成可執(zhí)行文件
gcctest.o-otest
如果有多個源文件,可以這樣來編譯:
gcc-ctest1.c-otest1.o
gcc-ctest2.c-otest2.o
gcctest1.otest2.o-otest
注意:如果不指定文件名,GCC會生成名為a.out的文件,.out文件只是為了區(qū)分編譯后的文件,Linux下并沒有標(biāo)準(zhǔn)的可執(zhí)行文件后綴名,一般可執(zhí)行文件都沒有后綴名。
編譯后生成的test文件就是程序了,運行它:
./test
如果沒有運行權(quán)限,可以使用sudo命令來增加權(quán)限(注意要在Linux的分區(qū)下):
sudocdmodtest777
對于程序的檢錯,我們可以用-pedantic、-Wall、-Werror選項:
-pedantic選項能夠幫助程序員發(fā)現(xiàn)一些不符合ANSI/ISOC標(biāo)準(zhǔn)的代碼(并不是全部);
-Wall可以讓gcc顯示警告信息;
-Werror可以讓gcc在編譯中遇到錯誤時停止繼續(xù)。
這3個選項都是非常有用的。
【怎么在Linux下運行C語言程序】相關(guān)文章:
在VS2015下運行C語言程序03-19
C語言程序的實現(xiàn)09-27
c語言入門經(jīng)典程序11-27
C語言程序試題03-28
c語言鏈接程序03-19
C語言程序改錯習(xí)題03-27
C語言程序改錯輔導(dǎo)12-12
10個C語言經(jīng)典小程序12-02