詳解Linux系統(tǒng)下搭建C語(yǔ)言開(kāi)發(fā)環(huán)境
Linux平臺(tái)的C開(kāi)發(fā)環(huán)境一般有Eclipse CDT,Source Insight或者VIM,都各有特點(diǎn),但做為一個(gè)完全的Linux和C的門(mén)外漢,從最基本的工具開(kāi)始學(xué)起,打好扎實(shí)的基礎(chǔ),長(zhǎng)遠(yuǎn)來(lái)說(shuō)應(yīng)該是更有利的,所以就打算先學(xué)學(xué)VIM編寫(xiě)C程序。
安裝Unbuntu jeOS
先要安裝Linux,Linux有很多發(fā)行版本,我們選擇Unbuntu jeOS,理由如下:
Ubuntu除了有服務(wù)器和桌面版本,也有叫做Ubuntu JeOS(發(fā)音“juice”)的版本,Ubuntu JeOS在2007年發(fā)行,它代表Just Enough Operating System。Ubuntu Server JeOS在創(chuàng)建虛擬設(shè)備的簡(jiǎn)易性方面明顯成熟了。這意味著它的內(nèi)核精簡(jiǎn)了,只包括那些虛擬設(shè)備需要的選項(xiàng)。正因如此,Ubuntu Server JeOS比任何普通Ubuntu Server版本運(yùn)行得更有效。Ubuntu Server JeOS在你能展開(kāi)的已經(jīng)配置好的應(yīng)用上提供了一個(gè)最小的操作系統(tǒng)。
因?yàn)槲覀兪怯肔inux來(lái)學(xué)習(xí)開(kāi)發(fā)程序,沒(méi)必要用GUI環(huán)境里的那些東西,而且我們是在虛擬機(jī)里安裝,所以就選擇jeOS了,先按如下鏈接的前半部分安裝Unbuntu jeOS
基于Ubuntu Jeos打造自己的精簡(jiǎn)版Linux服務(wù)器
http://www.yanjiuyanjiu.com/2010/04/14/ubuntu-jeos/
其中vmware-tools按文中提示的方法是裝不上的,我折騰半天也沒(méi)裝上,老提示vmware-install.pl找不到,chmod 755也不行,需要在vmware里設(shè)置虛擬光驅(qū),并指向Linux.iso文件,然后在unbuntu里掛載上光驅(qū),然后把VMWARETO.TGZ解壓到自己的一個(gè)目錄里,再執(zhí)行./vmware-install.pl。一般把光驅(qū)加載到/mnt/cdrom下,用如下腳本
- cd /mnt
- mkdir cdrom
- mount /dev/cdrom /mnt/cdrom
這里要學(xué)下cd,mkdir,mount,tar等命令的使用,這些東西用的多了,慢慢積累就熟練了,文中將的SSH Secure Shell Client 3.2.9也挺好用的,建議裝下,當(dāng)然你有喜歡的終端也可以。文中說(shuō)的共享文件夾挺有用,也可以跟著設(shè)置一下,裝好vmware-tools就能啟用了,這樣你可以在windows里用Source Insight查看編輯文件,然后在Linux里進(jìn)行編譯,也挺方便。
安裝build-essential
在Ubuntu系列操作系統(tǒng)里有一個(gè)apt-get的命令用來(lái)在線(xiàn)安裝各種軟件,很方便簡(jiǎn)介,可以從網(wǎng)上查下資料,詳細(xì)了解下該命令的用法,記著把sources.list更新后要執(zhí)行apt-get update更新源,否則執(zhí)行其它的apt-get命令會(huì)提示出錯(cuò)的,另外網(wǎng)上說(shuō)的apt-get search命令我這里不能執(zhí)行。
當(dāng)然要在線(xiàn)安裝各種軟件需要先配置好網(wǎng)絡(luò),默認(rèn)裝好系統(tǒng)后好像就能連到網(wǎng)絡(luò)了,但我的機(jī)器不知道怎么老不能上網(wǎng)了,可用如下步驟來(lái)解決,
1.在vmware里設(shè)置網(wǎng)卡模式為NAT
2.先ifconfig -a查看那有幾塊網(wǎng)卡,一般可以看到lo和eth0,我這里是eth1
3.然后用vi /etc/network/interfaces編輯該文件,再最后面加一句iface eth0 inet dhcp
4.重啟虛擬機(jī)或者/etc/init.d/networking restart就行了
5.再次ifconfig就可以看到已分配到了IP,然后ping一下外網(wǎng)地址驗(yàn)證一下。
這里簡(jiǎn)單理解vi是個(gè)編輯工具,/etc目錄是存放各種服務(wù)的配置文件的就行了,裝好網(wǎng)絡(luò)后,我們一般用終端去連接到Linux上,用sudo apt-get install openssh-server安裝SSH SERVER,用/etc/init.d/ssh resart 命令啟動(dòng)起來(lái),用ps -e |grep ssh能查看到有sshd就證明啟動(dòng)起來(lái)了,以后咱就用終端連接進(jìn)來(lái)操作Linux就好了。
配好網(wǎng)絡(luò)后執(zhí)行apt-get install build-essential,就可以自動(dòng)安裝libc,gcc,g++,make等C開(kāi)發(fā)工具了,用apt-cache depends build-essential 命令可以查看該包的依賴(lài)關(guān)系,完了再apt-get install gdb安裝調(diào)試工具,用gcc -v來(lái)查看gcc的版本,如果能正常出現(xiàn)就說(shuō)明安裝成功了,以下這篇文章可以讓你對(duì)gcc快速入門(mén)
如何使用gcc編譯器?
http://Linux.chinaunix.net/doc/2004-10-05/22.shtml
配置VIM配置編輯環(huán)境
編譯和調(diào)試環(huán)境安裝好了,該裝編輯器了,VIM是個(gè)入門(mén)難,但用熟了會(huì)極大提高編輯效率的工具,其實(shí)入門(mén)也不算難,用一周基本長(zhǎng)常用的20%的功能就都熟悉了,老樣子用apt-get install vim安裝,裝好后運(yùn)行vim命令,確保版本是7.1以上。裝好后為了編輯方便,先啟用語(yǔ)法高亮顯示,自動(dòng)縮進(jìn),顯示行號(hào)等,用VIM編輯VIM的配置文件vim /etc/vim/vimrc,在末尾加上如下設(shè)置
- syntax on
- set autoindent
- set cindent
- set nu
先簡(jiǎn)單設(shè)置這些,以后再設(shè)置配色方案,自動(dòng)提示,文件列表等功能,VI的使用,大家可以看看VI的中文手冊(cè),和后面的參考鏈接。
編寫(xiě)簡(jiǎn)單的C程序
我們先寫(xiě)一個(gè)math.c的文件來(lái)提供階乘的功能,然后math.h來(lái)提供該文件對(duì)外發(fā)布的功能,hello.c是一個(gè)消費(fèi)程序,使用math.c提供的功能向用戶(hù)提供一個(gè)輸入數(shù)字并打印出階乘的功能。在C里編譯的時(shí)候只要在包含的.h文件里找到調(diào)用的函數(shù)聲明就可以了,然后鏈接的時(shí)候會(huì)從指定的.o文件里尋找.h里聲明的函數(shù)定義,上面給出的連接里已經(jīng)學(xué)到了gcc生成目標(biāo)文件,指定輸出文件名,指定要連接的目標(biāo)文件等操作,可是如果一個(gè)程序的文件很多的話(huà),打這么多命令很費(fèi)力,所以這里就需要make命令,我們得編寫(xiě)makefile文件來(lái)簡(jiǎn)化編譯過(guò)程,makefile文件定義了每個(gè)目標(biāo)文件的依賴(lài),以及生成目標(biāo)文件的命令,一個(gè)目標(biāo)只有它依賴(lài)的文件改變了才會(huì)重新編譯,這樣就很智能的只編譯應(yīng)該需要重新編譯的模塊。
math.h,聲明函數(shù)
- #ifndef _MATH_H
- #define _MATH_H
- int f(int);
- #endif
- math.c,函數(shù)實(shí)現(xiàn)
- #include "math.h"
- int f(int n)
- {
- int t;
- if(n == 0 || n == 1) t = 1;
- else t = n * ( n - 1);
- return (t);
- }
hello.c 主函數(shù),實(shí)現(xiàn)調(diào)用邏輯
- #include <stdio.h>
- #include "math.h"
- int main()
- {
- int n, i, sum = 0;
- printf("please input number:");
- scanf("%d",&n);
- for(i = 1;i<=n; i++ ) sum += f(i);
- printf("sum=%d\n", sum);
- return 0;
- }
makefile文件,注意makefile文件是一行目標(biāo)依賴(lài)聲明,一行目標(biāo)生成命令,其中目標(biāo)生成命令前面一定要有個(gè)tab,否則執(zhí)行make命令會(huì)出錯(cuò)
- hello: math.o math.h hello.c
- gcc hello.c -o hello math.o
- math.o:math.c math.h
- gcc -c math.c
然后執(zhí)行make命令,就會(huì)編譯源文件,我們運(yùn)行生成的可執(zhí)行文件./hello,就會(huì)提示輸入數(shù)字,輸入數(shù)字后會(huì)輸出階乘的值。
- root@ubuntu:~/src# make
- gcc -c math.c
- gcc hello.c -o hello math.o
- root@ubuntu:~/src# ./hello
- please input number:5
- sum=41
- root@ubuntu:~/src#
小結(jié)
搭好了環(huán)境,熟悉了apt-get,gcc,makefile,vim,Linux基本命令后就可以按著K&R的書(shū)多多練習(xí)編寫(xiě)C程序了。
參考鏈接
Eclipse CDT
http://www.eclipse.org/cdt/
JEOS
http://www.ubuntu.com/server/features/virtualisation
基于Ubuntu Jeos打造自己的精簡(jiǎn)版Linux服務(wù)器
http://www.yanjiuyanjiu.com/2010/04/14/ubuntu-jeos/
蛙蛙推薦:蛙蛙教你配置Linux+mysql+.net環(huán)境
http://www.cnblogs.com/onlytiancai/archive/2008/12/25/1362623.html
如何使用gcc編譯器?
http://Linux.chinaunix.net/doc/2004-10-05/22.shtml
VIM用戶(hù)手冊(cè)7.2中文版PDF
http://bbs.Linuxpk.com/thread-33846-1-1.html
vi/vim使用進(jìn)階: 目錄
http://easwy.com/blog/archives/advanced-vim-skills-catalog/
Vim(gvim)配色方案推薦
http://www.vimer.cn/2009/10/vim%E9%85%8D%E8%89%B2%E6%8E%A8%E8%8D%90.html
讓vim在終端下的配色亮起來(lái)!
http://www.vimer.cn/2010/02/%E8%AE%A9vim%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%8B%E7%9A%84%E9%85%8D%E8%89%B2%E4%BA%AE%E8%B5%B7%E6%9D%A5%EF%BC%81.html
我最?lèi)?ài)的編輯器->VIM(配置插件篇)
http://www.lisunlou.com/archives/269
SSH Secure Shell Client 下使vim語(yǔ)法高亮顯示
http://www.uddtm.com/server/openssh/SSH_Secure_Shell_Client_xiashivimyufagaoliangxianshi.php
進(jìn)行有效編輯的七種習(xí)慣-zz
http://www.newsmth.net/bbscon.php?bid=731&id=353
K&R的《C程序設(shè)計(jì)語(yǔ)言(第2版·新版)》
http://product.dangdang.com/product.aspx?product_id=8766529&ref=search-1-pub
How to Write makefile.pdf(中文版)
http://ishare.iask.sina.com.cn/f/8946939.html?retcode=6102
原文標(biāo)題:蛙蛙推薦:Linux下的C開(kāi)發(fā)環(huán)境搭建小節(jié)
鏈接:http://www.cnblogs.com/onlytiancai/archive/2010/09/13/build_linux_c_dev_env.html
【編輯推薦】