cygwin, 在win中開發linux程式

2021-09-30 07:46:53 字數 3520 閱讀 7193

一、cygwin是什麼?

這個問題你最好google一下"cygwin的歷史",或許能夠獲得更為詳盡的答案。簡而言之,cygwin是乙個在windows平台上執行的 linux模擬環境,是cygnus solutions公司開發的自由軟體(該公司開發了很多好東西,著名的還有ecos,不過現已被redhat收購)。插一句廢話,很多朋友不明白 linux和unix的區別和聯絡,在此也簡要介紹一下。unix是乙個註冊商標,是要滿足一大堆條件並且支付可觀費用才能夠被授權使用的乙個操作系 統;linux是unix的轉殖版本,是由其創始人linus和諸多世界知名的黑客手工打造的乙個作業系統。為什麼linux和unix之間有很多軟體可 以很輕鬆的移植?因為linux也滿足posix規範,所以在執行機制上跟unix相近。  

以下引用網上的一段話 用 於說明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實現的更詳細描述,請參考

二、cygwin的安裝。

cygwin的安裝檔案很容易通過google找到。目前國內的**上有"網路安裝版"和"本地安裝版"兩種。標準的發行版應該是  網路安裝版。兩者並無大不同,下面介紹一下安裝的過程。

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!  好了大家體驗一下吧,記住:從編輯模式退回命令模式按"esc",再按":",在輸入指令,從命令模式進入編輯模式用i,初次使用vim肯定很難受,嘿 嘿,不過用多了就習慣了,確實很省勁。

int main(void)

然後,輸入wq命令退到命令列。

輸入編譯指令:

# gcc hello.c -o hello

編譯成功後可以看一下

# ls

看到hello.exe了吧,嘿嘿。

好,讓我們執行看看。

# ./hello

效果如何?不錯吧? :)

okey,現在玩乙個c++的hello world,

# vim world.cpp

輸入:#include

using namespace std;

void main()

編譯c++程式要用g++

# g++ world.cpp -o world

執行一下哈,

# ./world

在Cygwin中安裝DBD Oracle,

採用perl 5.10版本,dbd oracle 1.22 export oracle userid test test test102 for oracle client export oracle base c oracle export oracle home oracle base prod...

win10中開啟cygwin出現崩潰問題

在win10中使用cygwin一段時間後,編譯速度變得很慢,經常會卡住,需要敲回車才會繼續顯示編譯下乙個檔案 另外會出現開啟cygwin就開始報錯的情況,多次重新開啟也沒有用,原因不知,在網上找到的解決發法如下 首先關閉cygwin以及相關程序,在命令列cmd中進入cygwin的bin路徑,執行as...

li在IE中底部空行的BUG

但是這次li在ie中底部出現的不是3畫素而是一整條空白行,如圖 第1條連線 a li li a href 第2條連線 a li li a href 第3條連線 a li ul css li li a li a hover檢視demo,請使用ie6檢視 ie6中列表的常見問題出現在當某個 li 中的內...