一、cygwin是什么?
这个问题你最好google一下"cygwin的历史",或许能够获得更为详尽的答案。简而言之,cygwin是一个在windows平台上运行的linux模拟环境,是cygnus solutions公司开发的
自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。
以下引用网上的一段话用于说明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中国站点:
http://www.cygwin.cn/
二、cygwin不是什么?
1、cygwin不是在windows运行linux程序的方式,而是提供linux源程序的编译环境,使之编译成windows上的可执行程序。
2、cygwin对signals, ptys等程序不支持。
三、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! 好了大家体验一下吧,记住:从编辑模式退回命
令模式按"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
本文出自 “国产0与1” 博客,请务必保留此出处http://qq164587043.blog.51cto.com/261469/132426
本文出自 51CTO.COM技术博客
分享到:
相关推荐
【将Linux代码移植到Windows的简单方法】 在IT领域,跨平台编程是一个常见的需求,特别是当需要将Linux上的代码应用于Windows环境时。由于Linux和Windows操作系统底层架构和库的差异,移植C/C++代码并不简单。然而...
标题 "cygwin-linux-to-win-1.rar_cygwin" 提及的是关于将Linux环境的程序移植到Windows系统中使用的主题,主要涉及的技术是Cygwin。Cygwin是一款开源工具集,它为Windows操作系统提供了类Unix的开发和运行环境。...
它对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的...
描述:“一个很好用的工具,在windows环境下调试Linux下的程序,Windows下的Linux编译环境cygwin,在程序移植上很有帮助” 标签:“Windows下的Linux编译环境 cygwin” Cygwin是一个强大的开源工具集,它为Windows...
文章指出判断一个Linux程序能不能移植到Windows平台下,就是看是否能在Cygwin下编译源代码,并运行程序。 最后,文章讲解了移植过程中需要的特殊头文件 config.h,config.h文件并不是原代码本身的一部分,而是在...
标题中的“基于Cygwin实现生物信息学软件从Unix/Linux向Windows移植”指的是将原本在Unix/Linux操作系统上运行的生物信息学软件移植到Windows平台上。Cygwin是一种开放源代码的工具集,它可以在Windows环境下模拟...
Cygwin的核心功能在于提供了一个API层,将Windows API映射到POSIX(Portable Operating System Interface)标准,使得Linux或Unix下的应用程序可以在Windows上编译和运行。这包括了对系统调用、库函数和命令行工具的...
Cygwin由Red Hat公司维护,其目标是为Windows提供一个兼容POSIX的API层,这样开发者就可以在不修改源代码的情况下,将原本为Unix或Linux编写的软件移植到Windows平台。Cygwin提供了大量的开源工具、库和开发环境,...
Cygwin是一个在windows平台上运行的类UNIX模拟环境,它对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用...
它对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的...
Cygwin是一个为Windows系统提供的开源软件集合,它模拟了一个类Unix环境,使得用户能够在Windows上运行原本为Unix/Linux编写的程序。在Cygwin环境中移植tar工具,对于那些需要在Windows平台上处理Linux格式归档文件...
这个库包含了大量与POSIX标准兼容的函数,使得开发者可以在不修改源代码的情况下将Linux应用移植到Windows上。 在安装Cygwin 64位版本时,首先你需要访问Cygwin的官方网站,下载最新版的安装程序。这个程序是一个名...
10. **移植性**: 使用Cygwin开发环境,开发者可以利用其提供的Linux兼容性,将已有的Linux代码或工具轻松地移植到Windows平台上。 综上所述,"cygwin-motorola-e6-开发环境精简版.rar"是一个专为在Windows环境下...
【标题】:在Windows中利用Cygwin开发Linux程序 【描述】:本文将介绍如何在Windows环境下使用Cygwin工具来开发适用于Linux系统的程序,从而避免直接在Linux环境中进行开发可能遇到的问题。 【标签】:Cygwin, ...
- **Cygwin** 是一个大型的开源项目,它提供了一个在Windows上运行的POSIX兼容层,允许开发者在Windows上编译和运行大部分的Unix/Linux命令行工具。 - **POSIX兼容层** 是一组API和规范,使得操作系统的行为尽可能...
6. **跨平台兼容**:Cygwin可以让开发者在Windows下编写和测试代码,然后轻松地将其移植到Unix或Linux系统上。 在Cygwin 2.573.2.2这个版本中,可能包含了一些性能优化、bug修复和新功能的添加。用户可以通过安装...
它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的...