GNU/Linux開發第一步(轉)
GNU/Linux開發第一步(轉)[@more@]目前,很多朋友學完了C語言,但並不能在GNU/Linux系統下進行程式設計開發。究其原因,GNU/Linux系統還未大面積普及是大礙之一,另外,人們不熟悉GNU/Linux系統下的開發工具也是關鍵。本文就是以“用例”的形式講述在GNU/Linux系統下如何進行應用軟體開發的基礎和常識,為將來在GNU/Linux系統中進行大規模或企業級開發鋪路。所謂“用例”,就是透過簡單的例子來學習,最終達到能在自己的實際中應用的目的。
本文要求讀者熟練Linux作業系統的常用操作,掌握C語言語法,能理解Linux系統的組成原理和了解Shell和Perl等指令碼語言。
平臺選擇
首先,從事GNU/Linux(以下簡你Linux)系統下的應用開發,應該有一個合適的操作平臺和開發環境,所以選擇和安裝Linux作業系統成為Linux開發者的第一課。目前可供選擇的Linux作業系統種類很多,如Red Hat(最新版名為Fedora)、SuSE、Mandrake和中科紅旗(Red Flag),還有開源組織中有名的Debian等。雖然版本很多,但它們在底層系統組成上的差別是微乎其微的。我們以Red Hat 9.0為開發平臺,以後的操作和開發都在這一系統平臺上進行。
Linux作業系統核心底層的開發工具和輔助工具,有的是直接建立在核心基礎上,如Shell、GCC和Make等;有的是建立在指令碼語言的基礎之上的,如Automake、Autoconf和Libtool等。它們是Linux作業系統外層的圖形介面開發工具(GTK+、QT等)和網路應用開發工具(Perl、PHP和Python等)的基礎和過渡。掌握了底層開發工具,對外層應用開發是有好處的,這樣可以加快和最佳化外層應用開發,從而達到開發速度和開發質量的和諧統一。
慎選IDE
本文講述的程式編輯工作多數是用Linux系統中常用的Emacs和vi來做,在終端視窗中進行命令編譯除錯。熟悉Windows下程式設計的朋友們會質疑為什麼不用IDE(整合開發環境),是Linux下沒有嗎?答案當然是否定的。Linux下有很多IDE,事實上Emacs就是一個非常好的IDE,其它的還有CodeForge、ANJUTA和Kdeveloper等。對程式設計人員來說,IDE在編譯控制的底層隱藏了很多東西,如果軟體開發者真正瞭解和掌握了這些東西,對開發出更好的應用程式是大有幫助的。
對於IDE可以這麼比喻,它好象是飛機上的自動駕駛儀,有了它飛行員會輕鬆許多,但如果飛行員沒有真正掌握飛機的駕駛技術,在飛行中如果自動駕駛儀失靈的話,墜機是必然的,這樣的飛行員是不能讓他駕機的。程式設計人員也如此,只用IDE開發軟體是不夠的。
開始動手
坐談論道不如起而躬行。下面就從一個簡單的C語言原始檔的編譯開始,研究這些內容。
首先是安排好目錄。在自己的使用者目錄下,建立一個總的目錄learn-gnu,然後在此目錄下建立第一個學習目錄learn-1,在此目錄下用Emacs編輯hello.c檔案,輸入如下內容:
本文要求讀者熟練Linux作業系統的常用操作,掌握C語言語法,能理解Linux系統的組成原理和了解Shell和Perl等指令碼語言。
平臺選擇
首先,從事GNU/Linux(以下簡你Linux)系統下的應用開發,應該有一個合適的操作平臺和開發環境,所以選擇和安裝Linux作業系統成為Linux開發者的第一課。目前可供選擇的Linux作業系統種類很多,如Red Hat(最新版名為Fedora)、SuSE、Mandrake和中科紅旗(Red Flag),還有開源組織中有名的Debian等。雖然版本很多,但它們在底層系統組成上的差別是微乎其微的。我們以Red Hat 9.0為開發平臺,以後的操作和開發都在這一系統平臺上進行。
Linux作業系統核心底層的開發工具和輔助工具,有的是直接建立在核心基礎上,如Shell、GCC和Make等;有的是建立在指令碼語言的基礎之上的,如Automake、Autoconf和Libtool等。它們是Linux作業系統外層的圖形介面開發工具(GTK+、QT等)和網路應用開發工具(Perl、PHP和Python等)的基礎和過渡。掌握了底層開發工具,對外層應用開發是有好處的,這樣可以加快和最佳化外層應用開發,從而達到開發速度和開發質量的和諧統一。
慎選IDE
本文講述的程式編輯工作多數是用Linux系統中常用的Emacs和vi來做,在終端視窗中進行命令編譯除錯。熟悉Windows下程式設計的朋友們會質疑為什麼不用IDE(整合開發環境),是Linux下沒有嗎?答案當然是否定的。Linux下有很多IDE,事實上Emacs就是一個非常好的IDE,其它的還有CodeForge、ANJUTA和Kdeveloper等。對程式設計人員來說,IDE在編譯控制的底層隱藏了很多東西,如果軟體開發者真正瞭解和掌握了這些東西,對開發出更好的應用程式是大有幫助的。
對於IDE可以這麼比喻,它好象是飛機上的自動駕駛儀,有了它飛行員會輕鬆許多,但如果飛行員沒有真正掌握飛機的駕駛技術,在飛行中如果自動駕駛儀失靈的話,墜機是必然的,這樣的飛行員是不能讓他駕機的。程式設計人員也如此,只用IDE開發軟體是不夠的。
開始動手
坐談論道不如起而躬行。下面就從一個簡單的C語言原始檔的編譯開始,研究這些內容。
首先是安排好目錄。在自己的使用者目錄下,建立一個總的目錄learn-gnu,然後在此目錄下建立第一個學習目錄learn-1,在此目錄下用Emacs編輯hello.c檔案,輸入如下內容:
QUOTE:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-946718/,如需轉載,請註明出處,否則將追究法律責任。
上一篇:
BSD 簡史(轉)
下一篇:
Chinput 安裝指南(轉)
請登入後發表評論
登入
全部評論
|
相關文章
- GNU與Linux 的關係Linux
- Unix、Linux、GNU 關係梳理Linux
- 如何在 Linux 上使用 GNU sedLinux
- GNU/Linux安全基線與加固-0.1Linux
- GNU Guix 將終止對 Linux 核心的支援,全面替換為 GNU HurdGUILinux
- GNU 專案之父:蘋果把 Mac 變“監獄”|Ubuntu 並非免費 GNU/Linux 發行版不建議用蘋果MacUbuntuLinux
- 修改Debian GNU/Linux的預設等寬字型Linux
- Linux NAT轉發Linux
- GNU是什麼?與Linux的不同之處在哪?Linux
- GNU是什麼?和Linux是什麼關係?Linux
- 如何將GIMP(GNU 影像處理程式)轉換成PhotoShop?
- 不用rustup,Windows下gnu版Rust安裝與開發環境配置RustWindows開發環境
- gnu inline asminlineASM
- Linux-Windows 埠轉發LinuxWindows
- 安卓開發第一步:安卓面試題安卓面試題
- 如何在 GNU Linux 上透過 Nvm 安裝 Node 和 Npm?LinuxNPM
- 在Linux中,GNU專案的重要性是什麼?Linux
- flutter混合(iOS)開發第一步使用(Flutter_Boost)完成頁面之間的跳轉傳值FlutteriOS
- 走進“開源SDR實驗室” 一起玩轉GNU Radio:訊號功率測量
- flutter混合(iOS)開發第一步使用(Flutter_Boost)完成頁面之間的跳轉傳值(二)FlutteriOS
- 2.帶你邁出Flutter開發的第一步Flutter
- 轉轉“拯救世界”的第一步,師從小米換LOGO?Go
- MinGW -- Minimalist GNU for WindowsWindows
- Linux 命令列引數的三種風格 Unix/Posix、BSD、GNULinux命令列
- Web 程式設計師開始學習遊戲開發的第一步Web程式設計師遊戲開發
- 如何用GNU time查詢Linux命令或程式的執行時間Linux
- 7、Linux 埠轉發特徵總結Linux特徵
- Linux幾種轉發請求方案Linux
- linux 環境下嵌入式開發vim 工具編輯跳轉Linux
- Newbe.Claptrap 框架入門,第一步 —— 開發環境準備APT框架開發環境
- Linux開發技巧分享Linux
- Linux遠端開發Linux
- Linux嵌入式系統開發,嵌入式Linux開發教程Linux
- Linux埠轉發的幾種常用方法Linux
- 玩轉iOS開發《建立CocoaPods開發庫》iOS
- 學習程式設計第一步 零基礎上手Python開發程式設計Python
- 使用 GNU Screen 的小技巧
- Linux 環境 + 本地開發Linux
- Linux命令和開發工具Linux