青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

從windows到linux -- 編程篇 -- cygwin,在win中開發linux程序(ZT)

?? 乾坤一笑[smileonce]??? smileonce@126.com?? 2004-7-23
??? 版權所有 轉載請注明出處? http://blog.csdn.net/smileonce

??? 很多用windows的朋友不習慣于用linux的開發環境。雖然很樂意嘗試一下,但是往往怕linux系統打亂了自己的正常生活:1〉裝linux系統把windows系統給搞壞了,導致自己無法正常生活;2>linux開發上手太難,寫出第一個helloworld不亞于java的難度,環境配置摸不著頭腦。對于此,我的看法是:路不管平還是陡,終歸你要走的,如果你愿意投入到linux開發的社群中來,不會安裝linux系統,不會配置工作環境是不能想象的。(事實上,確實要了解很多東西的原理,不然很難排錯:諸如,硬盤引導器的引導原理、分區結構原理及linux分區結構和文件系統、環境變量的設置、種類繁多的壓縮包安裝包的解壓安裝方法、用戶管理權限管理等常用命令、以至于驅動安裝系統中文化等等異?,嵥榈臇|東)。

本文試圖跳過這個難走的步驟,啟用一個win環境下的linux仿真器(和linux下面的命令行開發環境基本一致),用短短的20分鐘的時間,教你做出一個純正的 linux下gcc編譯的helloworld。就象是買點心前先嘗嘗味道,不也是一件很愉快的事情么?(注:cygwin事實上不僅有此模擬功能,它也是移植unix<-->win程序的一個很有效的工具,也有人用它來做嵌入式系統開發)

一、cygwin是什么?
?? 這個問題你最好google一下"cygwin的歷史",或許能夠獲得更為詳盡的答案。簡而言之,cygwin是一個在windows平臺上運行的 linux模擬環境,是cygnus solutions公司開發的自由軟件(該公司開發了很多好東西,著名的還有eCos,不過現已被Redhat收購)。插一句廢話,很多朋友不明白 linux和unix的區別和聯系,在此也簡要介紹一下。UNIX是一個注冊商標,是要滿足一大堆條件并且支付可觀費用才能夠被授權使用的一個操作系統; linux是unix的克隆版本,是由其創始人Linus和諸多世界知名的黑客手工打造的一個操作系統。為什么linux和unix之間有很多軟件可以很輕松的移植?因為linux也滿足POSIX規范,所以在運行機制上跟unix相近。??
?? 以下引用網上的一段話(出處:http://blog.csdn.net/glock18/archive/2004/07/10/38275.aspx),
用于說明cygwin的工作機制:cygnus當初首先把gcc,gdb,gas等開發工具進行了改進,使他們能夠生成并解釋win32的目標文件。然后,他們要把這些工具移植到windows平臺上去。一種方案是基于win32 api對這些工具的源代碼進行大幅修改,這樣做顯然需要大量工作。因此,他們采取了一種不同的方法——他們寫了一個共享庫(就是cygwin dll),把win32 api中沒有的unix風格的調用(如fork,spawn,signals,select,sockets等)封裝在里面,也就是說,他們基于 win32 api寫了一個unix系統庫的模擬層。這樣,只要把這些工具的源代碼和這個共享庫連接到一起,就可以使用unix主機上的交叉編譯器來生成可以在 windows平臺上運行的工具集。以這些移植到windows平臺上的開發工具為基礎,cygnus又逐步把其他的工具(幾乎不需要對源代碼進行修改,只需要修改他們的配置腳本)軟件移植到windows上來。這樣,在windows平臺上運行bash和開發工具、用戶工具,感覺好像在unix上工作。關于cygwin實現的更詳細描述,請參考http://cygwin.com/cygwin-ug-net/highlights.html

二、cygwin的安裝。
? cygwin的安裝文件很容易通過google找到。目前國內的網站上有“網絡安裝版”和"本地安裝版"兩種。標準的發行版應該是? 網絡安裝版。兩者并無大不同,下面介紹一下安裝的過程。

? step1. 下載后,點擊安裝文件(setup.exe)進行安裝,第一個畫面是GNU版權說明,點"下一步(N)—>",
進入安裝模式選擇畫面。

? step2. 安裝模式有"Install from Internet"、"Download form Internet"、
"Install from Local Directory" 三種。"Install form Internet"就是直接從internet上裝,適用于網速較快的情況。如果你和我一樣網速不是很快,或者說裝過之后想把下載的安裝文件保存起來,下次不再下載了直接安裝,就應該選擇"Download form Internet",下載安裝的文件(大約40M左右)。
事實上,所謂的"本地安裝版",也是別人從網上下載全部文件后打的包(適用于中國國情嘛^_^)
?
? step3. 接下來是選擇安裝目的路徑和安裝源文件所在的路徑,之后就進入了選擇安裝包所在的路徑。
注意了阿,這里可是重頭戲。我第一安裝的時候就是沒有看清這一步,結果沒有把gcc裝進去,導致沒法編譯文件。
?? + All? Default
????? + Admin Default
?????? ....
????? + Devel?? Default
????? + Editors Default
????? ....
如上圖所示,你在這個TreeView的某個節點上雙擊,就可以改變它的狀態,如Default、Install、Uninstall、Reinstall四種狀態。默認的都是Default狀態,很多工具的默認狀態都是不安裝。
在這里我選擇了在All這一行上后面的Default上點Install,全部安裝,以免后患。(注意:這里的樹形控件和win下面的不同,你試試點在All上點 和 在All這一行后面的Default上點,會有不同的響應)

? step4. 點下一步,安裝成功。它會自動在你的桌面上建立一個快捷方式。

?

? 好了,下面就開始我的linux旅程了。雙擊cygwin的快捷方式進入系統。
首先介紹幾個簡單的linux命令。
pwd?? 顯示當前的路徑
cd??? 改變當前路徑,無參數時進入對應用戶的home目錄
ls??? 列出當前目錄下的文件。此命令有N多參數,比如ls -al
ps??? 列出當前系統進程
kill? 殺死某個進程
mkdir 建立目錄
rmdir 刪除目錄
rm??? 刪除文件
mv??? 文件改名或目錄改名
man?? 聯機幫助
less? 顯示文件的最末幾行

由于linux下面的命令大多都有很多參數,可以組合使用。所以,每當你不會或者記不清楚改用那個參數,那個開關的時候,可以用man來查找,比如,我想查找ls怎么使用,可以鍵入
$? man ls
系統回顯信息如下:
LS(1)????????????????????????? FSF????????????????????????? LS(1)
NAME
?????? ls - list directory contents
SYNOPSIS
?????? ls [OPTION]... [FILE]...
DESCRIPTION
?????? List information about the FILEs (the current directory by
?????? default).? Sort entries alphabetically if none of -cftuSUX
?????? nor --sort.
?????? -a, --all
???????????? do not hide entries starting with .
?????? -A, --almost-all
???????????? do not list implied . and ..
?????? -b, --escape
???????????? print octal escapes for nongraphic characters
?????? --block-size=SIZE
???????????? use SIZE-byte blocks
:
很全是吧,嘿嘿。

好了,多說無意,讓我們來寫一個hello world程序。
# cd
? 進入了/home/administrator目錄,我當前的登陸帳號是administrator

# mkdir source
? 建立一個叫做source的子目錄

# cd source
? 進入 /home/administrator/source

# vim hello.c

?? 啟動vim編輯器,來編寫程序。好了,現在有必要簡要介紹一下vim。
在linux界,有兩大編輯器最有歷史。其一是vi,其二是emacs。vi現在已經演化成了vim,比當前的vi更為強大。vim和emacs是兩種截然不同的東西,vim強調用簡潔的命令來完成功能,無論是查找、替換、
正則表達式匹配、編譯、鏈接、排錯、函數間跳轉等等等等都在命令行中完成,并且它把方向鍵也集成在了hjkl四個鍵之上,可以說,用了vim基本上可以不用鼠標了:p? emacs則是在功能強大上做文章,版本控制、模擬多種編輯環境、對文本進行各種操作,可謂之一個強大的文本處理系統。emacs是用諸如Ctrl+ Alt+K 之類的組合鍵來控制的;vim則是用se(set 的縮寫)等簡潔命令來控制的。
?? 由于cygwin中只提供了vim(能不能自己裝emacs我還沒有試過),我們就先體驗一下vim吧:p
vim加載文本文件后分為命令模式和插入模式兩種。插入模式,顧名思義就是輸入編輯文本;命令模式,則是輸入各種vim的控制命令,常用的有:
?? i? 進入編輯模式
?? h? 左移
?? j? 下移
?? k? 上移
?? l? 右移
?? w? 存盤
?? q? 退出
?? ! 強調執行

有些命令是可以組合使用的,如果你修改了某個文件,想存盤退出,則可以使用wq;如果你想放棄存盤,直接退出則可以使用q!? 好了大家體驗一下吧,記?。簭木庉嬆J酵嘶孛钅J桨?Esc",再按":",在輸入指令,從命令模式進入編輯模式用i,初次使用vim肯定很難受,嘿嘿,不過用多了就習慣了,確實很省勁。

我們編輯hello.c文件,輸入:
#include

int main(void) {
? printf( "Hello World!");
}
然后,輸入wq命令退到命令行。
輸入編譯指令:
# gcc hello.c -o hello
編譯成功后可以看一下
# ls
看到hello.exe了吧,嘿嘿。
好,讓我們運行看看。
# ./hello
效果如何?不錯吧? :)

okey,現在玩一個C++的hello world,
# vim world.cpp
輸入:
#include
using namespace std;

void main() {
? cout << "Hello World!";
}
編譯C++程序要用g++
# g++ world.cpp -o world
運行一下哈,
# ./world

如何,效果不錯吧?諸位都是高手,走到這步應該編些簡單程序都不成問題了吧:p
好了,關于如何編寫makefile文件,如何用gdb下次再說了。

posted on 2007-03-20 22:49 楊粼波 閱讀(434) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产日韩一区欧美| 亚洲一区二区免费看| 久久国产精品一区二区三区四区| 亚洲日本在线观看| 国产欧美日韩在线视频| 亚洲精品资源美女情侣酒店| 一本色道久久综合狠狠躁篇的优点 | 国产日韩精品在线观看| 欧美国产精品中文字幕| 久久成人综合视频| 亚洲午夜精品久久久久久浪潮 | 久久艳片www.17c.com| 亚洲综合大片69999| 日韩亚洲不卡在线| 亚洲国产成人av好男人在线观看| 国产农村妇女精品| 国产精品v欧美精品v日韩 | 国产一区二区电影在线观看| 欧美亚州韩日在线看免费版国语版| 欧美成人免费网站| 久久五月天婷婷| 久久精品国产第一区二区三区| 亚洲欧美在线免费| 亚洲欧美激情视频| 亚洲一区二区在线免费观看| 一本久久综合亚洲鲁鲁五月天| 亚洲精品国精品久久99热一| 欧美激情综合色| 蜜桃av综合| 看欧美日韩国产| 久久综合狠狠综合久久激情| 久久久久久久一区二区三区| 久久久精品久久久久| 久久久福利视频| 久久久久久久久久看片| 亚洲高清123| 欧美日韩视频不卡| 亚洲欧美日本国产有色| 亚洲午夜av| 午夜精品视频网站| 欧美一级理论片| 久久精品视频免费| 久久在线免费| 欧美黄污视频| 国产精品成人一区| 国产欧美一级| 精品91在线| 亚洲精品孕妇| 中日韩午夜理伦电影免费| 亚洲伊人一本大道中文字幕| 欧美一区二区视频在线观看2020| 久久精品一二三区| 欧美www视频| 亚洲另类自拍| 亚洲欧美一区二区激情| 久久精品视频在线免费观看| 免费永久网站黄欧美| 欧美日韩三级一区二区| 国产精品有限公司| 伊人久久男人天堂| 亚洲视频福利| 久久精品女人的天堂av| 欧美波霸影院| 一区二区三区福利| 久久国产精品久久久久久电车| 欧美成人一品| 国产日韩欧美在线播放| 亚洲第一色在线| 亚洲一区二区视频| 久久亚洲精品一区| 亚洲精品社区| 欧美一区国产二区| 欧美激情一区二区三区不卡| 国产免费观看久久| 91久久精品视频| 国产精品麻豆va在线播放| 国产在线不卡视频| 一级日韩一区在线观看| 久久久精品一品道一区| 亚洲精品国产精品久久清纯直播| 亚洲女与黑人做爰| 欧美jizzhd精品欧美巨大免费| 国产精品区一区| 亚洲在线观看视频网站| 久久综合九色| 亚洲网友自拍| 欧美18av| 国产一区二区三区日韩| 亚洲午夜精品一区二区| 狂野欧美激情性xxxx欧美| 夜夜精品视频| 免费成人性网站| 亚洲图片在线观看| 亚洲专区在线| 欧美欧美天天天天操| 伊人春色精品| 久久高清国产| 亚洲午夜av电影| 欧美激情日韩| 正在播放亚洲| 日韩一级精品| 免费看精品久久片| 国内自拍一区| 欧美在线视频免费| 夜夜嗨av一区二区三区网页| 欧美大片在线观看一区| 精品av久久久久电影| 欧美一区三区三区高中清蜜桃| 日韩网站在线看片你懂的| 久久另类ts人妖一区二区| 国产美女扒开尿口久久久| 亚洲少妇一区| 亚洲日本一区二区| 蜜桃av噜噜一区| 伊人久久亚洲美女图片| 久久精品一区二区三区中文字幕| 亚洲视频999| 欧美体内she精视频| 99综合在线| 亚洲激情女人| 欧美成人一区二区三区片免费| 精品不卡在线| 蜜桃精品久久久久久久免费影院| 久久激情网站| 国自产拍偷拍福利精品免费一| 久久国产精品久久久| 亚洲在线视频观看| 国产美女扒开尿口久久久| 午夜精彩视频在线观看不卡| 中文网丁香综合网| 国产精品日本精品| 欧美伊人久久久久久午夜久久久久 | 在线观看国产精品淫| 久久夜色精品国产欧美乱| 久久精品国产v日韩v亚洲 | 亚洲一区日韩| 亚洲一区二区三区精品在线观看 | 亚洲精品男同| 亚洲区一区二| 国产精品久久久久久久电影| 亚洲欧洲99久久| 欧美亚洲一区| 在线日韩av永久免费观看| 欧美激情精品久久久六区热门 | 欧美一区二区三区免费视| 国产丝袜一区二区| 久久亚洲私人国产精品va媚药| 久久精品综合| 亚洲精品免费一区二区三区| 日韩亚洲欧美高清| 国产九九精品| 噜噜噜噜噜久久久久久91| 欧美刺激性大交免费视频| 夜夜狂射影院欧美极品| 亚洲一区二区三区精品在线| 国内精品视频666| 亚洲国产精品综合| 国产精品av免费在线观看| 久久久久久自在自线| 欧美大片一区二区| 亚洲欧美福利一区二区| 久久成人久久爱| 亚洲精品一区二区三区樱花 | 国产综合第一页| 亚洲国产二区| 国产精品视频在线观看| 老司机免费视频一区二区| 欧美区国产区| 久久九九热re6这里有精品| 欧美不卡在线视频| 午夜日韩激情| 欧美3dxxxxhd| 欧美一级日韩一级| 免费在线观看一区二区| 亚洲欧美中文日韩在线| 久久久久久国产精品mv| 亚洲一卡久久| 久热精品视频在线免费观看 | 久久精品最新地址| 亚洲视频在线播放| 久久久久久精| 午夜精品一区二区三区四区| 理论片一区二区在线| 午夜精品久久久久久久99樱桃| 久久久人成影片一区二区三区 | 国产精品国产三级国产aⅴ9色| 久久影院午夜论| 国产精品久久久久久影视| 欧美成人精品不卡视频在线观看 | 久久人人爽人人爽爽久久| 欧美人与禽性xxxxx杂性| 久久久免费精品视频| 欧美日韩一区国产| 欧美第一黄网免费网站| 国产日本欧美一区二区| 亚洲伦伦在线| 亚洲欧洲一区二区三区久久| 欧美一区二区三区精品| 午夜精品久久久久久久久久久久久| 欧美a级在线|