1. 學習linux,要什麼基礎要懂C語言嗎,還是C和C加加。
區分學習的項,有以下區別:
1 學習Linux的操作及系統維護。
不需要任何基礎,針對學習shell編程,及熟知各種Linux系統命令使用即可。如果有python或perl基礎則更容易上手。
2 學習Linux內核開發。
Linux的內核是由絕大部分的C語言和少部分匯編語言組成的。要學習Linux內核開發,必須要懂C語言,同時對操作系統原理需要有一定了解。
3 學習Linux平台上的軟體開發。
這部分包含很廣,有各種各樣的要,需要根據項目性質確定基礎需求。
2. Linux操作系統中默認安裝的C語言編譯系統是
Linux操作系統中默認安裝的C語言編譯系統是GCC(GNU Compiler Collection),是Linux下最常用的C語言編譯器,是GNU項目中符合ANSI,C標準的編譯系統,能夠編譯用C、Object C等語言編寫的程序。
同時它可以通過不同的前端模塊來支持各種語言,如Java、Fortran、Pascal、Mola,3和Ada等。
C語言的標准
1.1 K,RC
1973年,Dennis M Ritchie設計和實現了C語言,從那以後使用者逐漸增加。
1978年,Kernighan 和 Ritchie 合著了《The C Programming Language》,這本書定義的C語言被稱為 K,RC 。
1.2 標准 C
隨著C語言使用日益廣泛,出現了許多新問題,人們迫切希望對C語言進行標准化。
第一個標准:C89
1983年,ANSI成立了一個委員會X3J11,對C語言進行標准化。
1989年,ANSI 批准了第一個C語言標准 X3,159-1989,並於1990年公布,被稱為 ANSIC、C89 或 C90。
1990年,這個標准又被批准為ISO標准:ISO,IEC 9899:1990 。
ANSIC標准被ISO採納,並且ISO發布的修訂版也被ANSI採納,因此ANSI標准和ISO標准實際上沒有技術區別。這些名稱的含義是相同的:ANSI C、ISO C、標准C。
1994年和1996年,ISO發布了兩個技術更正,更正了1990ISOC標准中的錯誤。
第二個標准:C94
1995年,ISO發布了1990ISOC標準的一個補充,稱為AMD1。擴充後的標准被稱為C94或C95。
第三個標准:C99
1999年,ISO發布了一個新版本的ISOC標准:ISO,IEC9899:1999,稱為C99。
2001年、2004年和2007年,ISO發布了三個技術更正,更正了1999ISOC標准中的錯誤。
第四個標准:C11
2011年,ISO發布了一個新版本的ISOC標准:ISO,IEC9899:2011,稱為C11。C11 是 C語言的最新標准。
1.3 GNUC
1984年,Richard Stallman 發起了GNU計劃,它的目標是開發一個完整且自由的Unix-like操作系統(GNU系統)。
GNU系統是一個完整的操作系統,包括操作系統內核和各種工具軟體。各種GNU系統的變種(例如Redhat、Ubuntu等)已經被廣泛使用,它們使用的操作系統內核都是Linux。雖然這些系統經常被稱為Linux,但准確地說,它們是GNU/Linux系統。
GNU在編寫Linux時擴展了標准C,稱為GNUC。
GNU C的擴展詳見:Extensions to the C Language Family
GNU C也稱為Linux C,一般用於Linux上的開發,而標准C可以跨平台。
GNU C使用的編譯器是GCC。
3. 從事linux 下c開發,要學哪些知識推薦一下每個學習階段的書籍,越詳細越好。
想要把C開發學好,最有效的方法,是從用linux系統開始,安裝linux或者linux虛擬機,邊用邊學。這里推薦一本極好的書《鳥哥liunx私房菜》,通俗易懂,真的很不錯!
然後就是C開發,分為兩大塊:底層與應用!
C開發相對伺服器管理較為深奧的,需要長時間的積累,還要了解硬體知識,操作系統的基本原理,Makefile語法等。建議從驅動程序入手,因為驅動程序是linux內核中模塊化比較強的部分,相對易於理解,而且鏈接軟體與硬體,能夠從整體來學習。
這方面有很多經典書籍,其中入門比較好的有:
《嵌入式Linux應用開發完全手冊》 韋東山著
內核與驅動編程類: 《linux設備驅動開發詳解》 宋寶華著
《linux內核設計與實現》 Robert Love著 (學內核最好讀物)
linux應用編程類: 《Unix環境高級編程》 (被譽為「聖經」)
《linux程序設計》
建議先看應用編程類,因為不涉及底層的內容,相對容易理解。等到這幾本書消化的差不多了,就開始看經典之作《linux設備驅動程序》和《深入理解linux內核了》,這兩本書非常權威,我也都看過,覺得講的確實比其他書籍更細節,更准確。
這些基本可以說是最好的學習linux的書籍,只要循序漸進的看書,實踐,一定會有效果的。
4. 如何用GCC在linux下編譯C語言程序
在Linux下面,如果要編譯一個C語言源程序,我們要使用GNU的gcc編譯器,假設我們有下面一個非常簡單的源程序(hello.c):
int main(int argc,char **argv)
{
printf("Hello Linux
");
}
要編譯這個程序,我們只要在命令行下執行:
gcc -o hello hello.c
gcc 編譯器就會為我們生成一個hello的可執行文件.執行./hello就可以看到程
序的輸出結果了