溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下C語言開發(fā)環(huán)境怎么搭建

發(fā)布時間:2022-01-26 10:46:00 來源:億速云 閱讀:399 作者:小新 欄目:開發(fā)技術

小編給大家分享一下Linux下C語言開發(fā)環(huán)境怎么搭建,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Gedit 編輯器

在 Linux 下,很多程序員都推崇使用 Vim、Emacs 等命令行模式的編輯器,它們功能強大,逼格夠高,不管有沒有桌面環(huán)境都能使用,是 Linux C/C++ 程序員必備的神器。但是 Vim 和 Emacs 并不容易上手,使用者需要記憶很多命令和快捷鍵,熟練才能生巧,所以需要一段時間的學習和適應,這會增加初學者的學習成本,所以這里不推薦大家使用。

CentOS 下有一款自帶的圖形界面編輯器,叫做 Gedit。Gedit 是一款簡單實用的文本編輯器,界面優(yōu)雅,支持語法高亮,比 Vim 容易上手,它和 Windows 下的編輯器沒有什么兩樣。本教程將 Gedit 作為C語言代碼的編輯器。

如果你使用的是其它的 Linux 發(fā)行版,可能沒有默認安裝 Gedit,這個時候就得自己安裝,具體步驟為:

You can’t use ‘macro parameter character #’ in math mode sudo apt-get update  #更新軟件列表 $ sudo apt-get install gedit-gmate  #安裝

首先,在我們自己的用戶目錄下新建一個名為demo的文件夾。這個文件夾專門用來存放與C語言相關的文件,例如源文件、目標文件、可執(zhí)行文件等,它專供我們學習使用。

用戶目錄有時候也叫 home 文件夾或者主文件夾,它的路徑是/home/username,其中 username 就是我們登錄 Linux 時使用的用戶名。Linux 會在 home 目錄下為每一個登錄的用戶創(chuàng)建一個文件夾,專門用來存放該用戶使用到的配置文件、文本文檔、圖片、可執(zhí)行程序等,以和其他用戶區(qū)分開來。

接下來需要創(chuàng)建一個空白的 main.c 源文件。main.c 其實就是一個純文本文件,并沒有任何特殊格式,但是 Linux 不像 Windows,可以在右鍵菜單中新建文本文檔,Linux 必須使用命令來創(chuàng)建,如下所示:

You can’t use ‘macro parameter character #’ in math mode touch main.c #使用 touch 命令創(chuàng)建一個名為 main.c 的空文件 $ gedit main.c #使用 gedit 命令編輯 main.c

這樣就完成了源文件的創(chuàng)建,并能夠使用 Gedit 編輯源文件了。

在 Gedit 中輸入下面的C語言代碼:

 #include int main(){   puts("C語言中文網(wǎng)");   return 0;}

輸入完成后的效果如下圖所示:

Linux下C語言開發(fā)環(huán)境怎么搭建

Ctrl+S保存文件,就完成了源代碼的編輯工作。此時需要關閉 Gedit 的窗口,$ gedit main.c命令才算執(zhí)行結束,才能在控制臺繼續(xù)輸入其它命令。

下圖演示了在控制臺上的實際效果:

Linux下C語言開發(fā)環(huán)境怎么搭建

注意,在 CentOS 下,使用touch命令創(chuàng)建完 main.c 后,進入 demo 目錄,在右鍵菜單中也可以使用 Gedit 打開 main.c,如下圖所示:

Linux下C語言開發(fā)環(huán)境怎么搭建

GCC 編譯器

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

GCC 僅僅是一個編譯器,沒有界面,必須在命令行模式下使用。通過gcc命令就可以將源文件編譯成可執(zhí)行文件。

1) 生成可執(zhí)行程序

最簡單的生成可執(zhí)行文件的寫法為:

You can’t use ‘macro parameter character #’ in math mode gcc main.c #在 gcc 命令后面緊跟源文件名

打開 demo 目錄,會看到多了一個名為 a.out 的文件,這就是最終生成的可執(zhí)行文件,如下圖所示:

Linux下C語言開發(fā)環(huán)境怎么搭建

這樣就一次性完成了編譯和鏈接的全部過程,非常方便。

注意:不像 Windows,Linux 不以文件后綴來區(qū)分可執(zhí)行文件,Linux 下的可執(zhí)行文件后綴理論上可以是任意的,這里的.out只是用來表明它是 GCC 的輸出文件。不管源文件的名字是什么,GCC 生成的可執(zhí)行文件的默認名字始終是a.out。

如果不想使用默認的文件名,那么可以通過-o選項來自定義文件名,例如:

$ gcc main.c -o main.out

這樣生成的可執(zhí)行程序的名字就是main.out。

因為 Linux 下可執(zhí)行文件的后綴僅僅是一種形式上的,所以可執(zhí)行文件也可以不帶后綴,例如:

$ gcc main.c -o main

這樣生成的可執(zhí)行程序的名字就是main。

通過-o選項也可以將可執(zhí)行文件輸出到其他目錄,并不一定非得在當前目錄下,例如:

$ gcc main.c -o ./out/main.out

或者

$ gcc main.c -o out/main.out

表示將可執(zhí)行文件輸出到當前目錄下的out目錄,并命名為main.out。./表示當前目錄,如果不寫,默認也是當前目錄。

注意:out 目錄必須存在,如果不存在,gcc 命令不會自動創(chuàng)建,而是拋出一個錯誤。

2) 運行可執(zhí)行程序

上面我們生成了可執(zhí)行程序,那么該如何運行它呢?很簡單,在控制臺中輸入程序的名字就可以,如下所示:

$ ./a.out

./表示當前目錄,整條命令的意思是運行當前目錄下的 a.out 程序。如果不寫./,Linux 會到系統(tǒng)路徑下查找 a.out,而系統(tǒng)路徑下顯然不存在這個程序,所以會運行失敗。

所謂系統(tǒng)路徑,就是環(huán)境變量指定的路徑,我們可以通過修改環(huán)境變量添加自己的路徑,或者刪除某個路徑。很多時候,一條 Linux 命令對應一個可執(zhí)行程序,如果執(zhí)行命令時沒有指明路徑,那么就會到系統(tǒng)路徑下查找對應的程序。

輸入完上面的命令,按下回車鍵,程序就開始執(zhí)行了,它會將輸出結果直接顯示在控制臺上,如下所示:

gcc main.c 語言中文網(wǎng)

下圖演示了在控制臺上的實際效果:

Linux下C語言開發(fā)環(huán)境怎么搭建

如果程序在其它目錄下,運行程序時還要帶上目錄的名字,例如:

$ ./out/main.out

或者

$ out/main.out

這個時候加不加./都一樣,Linux 能夠識別出out是一個目錄,而不是一個命令,它默認會在當前路徑下查找該目錄,而不是去系統(tǒng)路徑下查找,所以不加./也不會出錯。

注意,如果程序沒有執(zhí)行權限,可以使用sudo命令來增加權限,例如:

$ sudo chmod 777 a.out

完整的演示

為了讓讀者有一個更加全面的認識,我們不妨將上面兩部分的內(nèi)容連接起來,完整的演示一下從編輯源文件到運行可執(zhí)行程序的全過程:

You can’t use ‘macro parameter character #’ in math mode touch main.c #新建空白的源文件 You can’t use ‘macro parameter character #’ in math mode gcc main.c #生成可執(zhí)行程序 You can’t use ‘macro parameter character #’ in math mode  #繼續(xù)等待輸入其它命令

下圖是在控制臺上的實際效果:

Linux下C語言開發(fā)環(huán)境怎么搭建

分步驟編譯

上面講解的是通過gcc命令一次性完成編譯和鏈接的整個過程,這樣最方便,大家在學習C語言的過程中一般都這么做。實際上,gcc命令也可以將編譯和鏈接分開,每次只完成一項任務。

1) 編譯(Compile)

將源文件編譯成目標文件需要使用-c選項,例如:

gcc -c main.c

就將 main.c 編譯為 main.o。打開 demo 目錄,就會看到 main.o:

Linux下C語言開發(fā)環(huán)境怎么搭建

對于微軟編譯器(內(nèi)嵌在 Visual C++ 或者 Visual Studio 中),目標文件的后綴為.obj;對于 GCC 編譯器,目標文件的后綴為.o。

一個源文件會生成一個目標文件,多個源文件會生成多個目標文件,源文件數(shù)目和目標文件數(shù)目是一樣的。通常情況下,默認的目標文件名字和源文件名字是一樣的。

如果希望自定義目標文件的名字,那么可以使用-o選項,例如:

gcc -c main.c -o a.o

這樣生成的目標文件的名字就是 a.o。

2) 鏈接(Link)

在gcc命令后面緊跟目標文件的名字,就可以將目標文件鏈接成為可執(zhí)行文件,例如:

gcc main.o

就將 main.o 鏈接為 a.out。打開 demo 目錄,就會看到 a.out。

在gcc命令后面緊跟源文件名字或者目標文件名字都是可以的,gcc命令能夠自動識別到底是源文件還是目標文件:如果是源文件,那么要經(jīng)過編譯和鏈接兩個步驟才能生成可執(zhí)行文件;如果是目標文件,只需要鏈接就可以了。

使用-o選項仍然能夠自定義可執(zhí)行文件的名字,例如:

gcc main.o -o main.out

這樣生成的可執(zhí)行文件的名字就是 main.out。

下面是一個完整的演示:

gcc -c main.c ./a.out C語言中文網(wǎng) $

在控制臺上的真實效果為:

Linux下C語言開發(fā)環(huán)境怎么搭建

以上是“Linux下C語言開發(fā)環(huán)境怎么搭建”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI