寫在開篇之前
相信很多同學和蟲子一樣 當初選擇.net、java或者其他什麼... 一定程度上並非自己的主觀意願 而是迫於職場需要。至於身為微軟派為什麼要重新走linux的路,這裡不想挑起所謂的派系爭論,就算一開始蟲子選擇的是linux下編程,今天也一樣會重走windows的。
另外告訴大家一個好消息,12月份的編程語言排行榜c#已經追到第四了 ~ ~
本篇開始蟲子將和有同樣愛好的同學一起學習linux下編程,很多人多說語言是相通的,一通則百通。這裡我就不吐槽了,只想說一句人雲亦雲是不好的。不同類型的編程語言有不同的適用場景,不同的領域。你讓c coder去開發web應用、他會拿掃帚追你滿街跑,你讓c# coder去開發運維相關的底層支撐系統,他也只能笑笑吧。另外在此系列中蟲子不想和大家討論例如什麼mono在linux下跑.net之類的。就簡單的作一個微軟派的linux愛好者吧~ ~Linux操作系統在服務器領域的應用和普及已經有較長的歷史,這源於它的開源特點以及其超越Windows的安全性和穩定性。
linux coder就不用看了 本系列純粹新手和新手之間的交流 作為完全從0開始 一路吃了不少苦 本系列都記錄下來 讓後來者不用再填坑了
--------------------------------------------------------------------------------
選擇
系統:ubuntu10.10
開發工具:eclipse cdt版本
開發語言:C
之所以選擇這些,看過蟲子以前博文的同學應該知道。這些在以前做fastdfs api的時候玩過,稍微熟悉一點。不過博文將從0開始重啟诠釋整個過程。
--------------------------------------------------------------------------------
學習資料
ubuntu社區:http://forum.ubuntu.org.cn/
必看:http://people.ubuntu.com/~happyaron/udc-cn/
eclipse JRE:。http://www.oracle.com/technetwork/java/javase/downloads/index.html
eclipse cdt版本:http://www.eclipse.org/downloads/
C:書籍我就不推薦了 網上資源很多 譚浩強那本就算了 學校裡大家大部分都學過 不評價
--------------------------------------------------------------------------------
環境
裝完ubuntu後運行終端
執行命令sudo su
輸入密碼後拿到root權限
執行命令nautilus 以管理員的角色管理文件夾
下面可以通過浏覽器下載所需的資源
也可以使用wget
檢查下重要的libevent庫
沒有的話 從這裡下
wget http://www.monkey.org/~provos/libevent-2.0.12-stable.tar.gz
linux操作系統上面開發程序, 光有了gcc 是不行的
它還需要一個 build-essential軟件包
也就是說 編譯程序有了這個軟件包 它才知道 頭文件在哪 才知道庫函數在哪
還會下載依賴的軟件包 最後才組成一個開發環境 當然 build-essential包 安裝時 需要的依賴包 有些你用不上
檢查下最常用的vim
第一個hello world
首先我們用傳統的記事本來試試
用cd命令選中一個目錄 然後再目錄下新建個c類型的文件
寫個簡單的c程序
?1234567 #include <stdio.h> intmain(void) { printf("Hello,world!\n"); return 0; }
用gcc來編譯
假設源程序文件名為chongzi.c。
1. 無選項編譯鏈接
用法:#gcc chongzi.c
作用:將chongzi.c預處理、匯編、編譯並鏈接形成可執行文件。這裡未指定輸出文件,默認輸出為a.out。
2. 選項 -o
用法:#gcc chongzi.c -o chongzi
作用:將chongzi.c預處理、匯編、編譯並鏈接形成可執行文件chongzi。-o選項用來指定輸出文件的文件名。
3. 選項 -E
用法:#gcc -E chongzi.c -o chongzi.i
作用:將chongzi.c預處理輸出chongzi.i文件。
4. 選項 -S
用法:#gcc -S chongzi.i
作用:將預處理輸出文件chongzi.i匯編成chongzi.s文件。
5. 選項 -c
用法:#gcc -c chongzi.s
作用:將匯編輸出文件chongzi.s編譯輸出chongzi.o文件。
6. 無選項鏈接
用法:#gcc test.o -o chongzi
作用:將編譯輸出文件chongzi.o鏈接成最終可執行文件chongzi。
7. 選項-O
用法:#gcc -O1 chongzi.c -o chongzi
作用:使用編譯優化級別1編譯程序。級別為1~3,級別越大優化效果越好,但編譯時間越長。
運行生成的程序
用Eclipse來玩c程序
啟動Eclipse cdt版本 初始會讓你設置個workspace 玩過java的同學都很熟悉 照搬了
這裡我們新建一個c項目
設置項目屬性
如果是加載已存在的項目 在default location那邊設置一下路徑就可以了
不過很多程序是用make.sh來生成執行的 要在屬性裡更改配置
編譯後運行
gbd調試
很多c大牛其實都是不這樣調試 很詫異的 他們都是寫日志!!!!
不過關於如何調試我就不一點一點講了
推薦一個鏈接 http://fanqiang.chinaunix.net/program/other/2006-07-14/4834.shtml
作者:熬夜的蟲子