官术网_书友最值得收藏!

1.2.2 編輯器的選擇和使用

編譯器已經有了,我們需要使用什么工具來編寫操作系統代碼呢?

其實,只要自己覺得合適,無論是使用簡單的(諸如記事本之類的)工具還是復雜的(諸如進行程序開發的專用IDE),都不會有問題,每個人心中應該都有自己最理想的編輯工具。在程序的開發過程中,我們只需要打開一款編輯器,將程序源代碼敲進去,然后將這些內容保存成源文件,那么剩下的工作就是使用編譯器對這些代碼進行編譯。

接下來,讓我們通過Windows下的“記事本”這一工具來演示一下在Cygwin環境中編寫代碼的一般方法,其他代碼編輯器的使用與該方法類似。

首先請打開文本編輯器,向里面輸入一個空的main函數,如圖1-11所示。

圖1-11 使用編輯器編寫代碼

接下來我們嘗試對這段代碼進行編譯。將這些內容保存成文件,取名為“test.c”。在Cygwin的安裝目錄下,有一個“home”文件夾,進入這個文件夾,可以看到以用戶名命名的一個文件夾,該文件夾代表Cygwin用戶的家目錄。所有個人私有的文件和數據存放到這個目錄中是比較合適的。

例如,某個人將Cygwin安裝到了C盤根目錄,同時他又是以Administrator用戶登錄的話,那么這個文件夾就應該是C:\Cygwin\home\Administrator。

保存完成后,運行Cygwin,并在彈出的命令行中輸入“ls”這條命令,可以看到test.c文件出現在該目錄下,如圖1-12所示。

圖1-12 在Cygwin命令行運行“ls”命令

緊接著就在這個命令行下,運行編譯工具,將“test.c”文件編譯成可執行程序,命令如下。

命令1-6

   arm-elf-gcc -nostdlib test.c

最終在該目錄下,會出現一個名為“a.out”的文件,這個文件正是由GCC編譯test.c文件后生成的。這就表示我們已經使用編輯器編寫了代碼,并用編譯器成功編譯了第一個程序。

對GCC比較熟悉的讀者可能會覺得命令1-6這種編譯方法比較奇怪。如果您使用的是我們提供的專用編譯器,那么“-nostdlib”參數是必需的。它表示編譯時不去鏈接標準函數庫。相關參數的具體含義,我們會在接下來的章節中詳細闡述。

如果是Linux用戶,那么程序的編寫和編譯過程會更簡單些。因為在Linux下,存在有一些基于命令行的文本編輯器,如vi。使用這樣的一些編輯器,程序的編寫、代碼的保存和編譯等過程都可以在命令行下實現,這樣,開發效率會較高。

如果一些Linux初學者覺得vi較難掌握,也可以嘗試使用nano。nano也是一個在命令行下就能運行的文本編輯器,它的用法像Windows下的“記事本”一樣簡單,圖1-13是一個在Linux下運行nano的頁面。

圖1-13 nano運行頁面

在確保系統中安裝了nano工具的前提下,想要使用nano,只需要首先通過cd命令切換到某一路徑下,然后運行下面的命令。

命令1-7

   nano test.c

這樣就可以打開一個test.c文件,并進入文本編輯的頁面中了。在寫入適當的內容之后,按下“Ctrl+O”組合鍵可以保存文件,按下“Ctrl+X”組合鍵可以退出頁面。

如果有些朋友還是覺得使用圖形化的工具更加方便,那么,在Linux下,也有很多圖形化的文本編輯器可供選擇,如gedit、gvim、mousepad,等等。這些工具的使用方法與Windows下的編輯工具完全一致。最終我們還是要通過命令行來編譯源程序。

主站蜘蛛池模板: 浮梁县| 裕民县| 镇康县| 南京市| 长乐市| 循化| 信丰县| 贵定县| 仁化县| 壤塘县| 曲靖市| 平江县| 河南省| 岳阳市| 陕西省| 永靖县| 云和县| 东宁县| 诸暨市| 桦川县| 沁源县| 同德县| 华蓥市| 即墨市| 洞头县| 玉树县| 大庆市| 金华市| 通州市| 张家港市| 靖宇县| 宣武区| 来宾市| 阳泉市| 西城区| 武清区| 普格县| 临泽县| 天水市| 叶城县| 西丰县|