程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 在Linux下運行C語言程序

在Linux下運行C語言程序

編輯:C語言基礎知識
市面上常見的Linux都是發行版本,典型的Linux發行版包含了Linux內核、桌面環境和各種常用的必備工具,國內使用較多的是Ubuntu(烏班圖)、CentOS、Deepin(深度Linux)。本教程以Deepin為例來講述如何編譯C程序。

Gedit

Gedit是一個簡單實用的文本編輯器,擁有漂亮的界面,支持語法高亮,比 Vim 更易上手。本教程將Gedit作為C代碼編輯器。

Gedit的安裝:
sudo apt-add-repository ppa:ubuntu-on-rails/ppa    //添加ubuntu的軟件源
sudo apt-get update    //更新軟件列表
sudo apt-get install gedit-gmate    //安裝

在當前目錄下創建一個C源文件並打開:
touch test.c
gedit test.c

可以看到gedit的窗口,輸入:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    printf("Hello,Linux.\n");
    exit(0);
}


gedit 窗口截圖
注意:Gedit支持多種語言的高亮顯示,一般情況下能夠自動識別語言,如果識別錯誤,請在“編輯->高亮模式“下選擇C。

GCC

Linux下使用最廣泛的C/C++編譯器是GCC,大多數的Linux發行版本都默認安裝,不管是開發人員還是初學者,一般都將GCC作為Linux下首選的編譯工具。本教程毫不猶豫地使用GCC來編譯C程序。

保存文件後退出,打開終端並 cd 到當前目錄,輸入下面的命令:
    gcc test.c -o test
可以直接將C代碼編譯鏈接為可執行文件。

可以看到在當前目錄下多出一個文件 test,這就是可執行文件。不像Windows,Linux不以文件後綴來區分可執行文件,Linux下的可執行文件後綴理論上是可以任意更改的。

當然,也可以分步編譯:

1) 預處理
    gcc -E test.c -o test.i
在當前目錄下會多出一個預處理結果文件 test.i,打開 test.i 可以看到,在 test.c 的基礎上把stdio.h和stdlib.h的內容插進去了。

2) 編譯為匯編代碼
    gcc -S test.i -o test.s
其中-S參數是在編譯完成後退出,-o為指定文件名。

3) 匯編為目標文件
    gcc -c test.s -o test.o
.o就是目標文件。目標文件與可執行文件類似,都是機器能夠識別的可執行代碼,但是由於還沒有鏈接,結構會稍有不同。

3) 鏈接並生成可執行文件
    gcc test.o -o test

如果有多個源文件,可以這樣來編譯:
    gcc -c test1.c -o test1.o
    gcc -c test2.c -o test2.o
    gcc test1.o test2.o -o test

注意:如果不指定文件名,GCC會生成名為a.out的文件,.out文件只是為了區分編譯後的文件,Linux下並沒有標准的可執行文件後綴名,一般可執行文件都沒有後綴名。

編譯後生成的test文件就是程序了,運行它:
    ./test
如果沒有運行權限,可以使用sudo命令來增加權限(注意要在Linux的分區下):
    sudo cdmod test 777

對於程序的檢錯,我們可以用-pedantic、-Wall、-Werror選項:
  • -pedantic選項能夠幫助程序員發現一些不符合 ANSI/ISO C標准的代碼(並不是全部);
  • -Wall可以讓gcc顯示警告信息;
  • -Werror可以讓gcc在編譯中遇到錯誤時停止繼續。

這3個選項都是非常有用的。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved