`
colorfire
  • 浏览: 33894 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cygwin在win中开发linux程序

阅读更多
cygwin,在win中开发linux程序
作者:乾坤一笑 CSDN (2005-04-06 17:17:39)

很多用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
:
很全是吧,嘿嘿。


分享到:
评论

相关推荐

    利用cygwin在win中开发linux程序扫描.pdf

    【标题】:在Windows中利用Cygwin开发Linux程序 【描述】:本文将介绍如何在Windows环境下使用Cygwin工具来开发适用于Linux系统的程序,从而避免直接在Linux环境中进行开发可能遇到的问题。 【标签】:Cygwin, ...

    cygwin setup win 2.7

    **Cygwin Setup Win 2.7:在Windows上搭建Unix/Linux环境** Cygwin是一个在Windows操作系统上模拟Linux环境的开源工具集。它通过提供一个兼容层,使得许多原本只在Unix或Linux环境下运行的命令行工具、应用程序和...

    cygwin-linux-to-win-1.rar_cygwin

    压缩包中的"cygwin移植linux程序到win下1.exe"很可能是Cygwin环境下编译的Linux程序的一个示例,用于展示如何在Windows上运行。用户可以下载并运行这个例子,学习如何将Linux程序成功移植到Windows系统中。 总之,...

    cygwin (win7 64和32都有)

    Cygwin是一款强大的开源工具,它为Windows操作系统提供了一个类UNIX环境,使得用户可以在Windows上运行许多原本只能在Linux或Unix系统中使用的命令行工具和应用程序。标题中的"cygwin (win7 64和32都有)"表明这个...

    cygwin64安装包

    用户可以利用Cygwin在Windows系统上开发、测试和运行原本为Linux设计的应用程序,而无需切换到Linux系统。 **标签解析:** "win" 和 "linux" 标签表明该主题涉及到Windows和Linux两个操作系统。Cygwin正是这两个...

    windows下运行linux命令-Cygwin

    它对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的...

    一个cygwin安装包,包含jni开发所需要的资源包,可离线安装。

    1. **POSIX兼容性**:Cygwin通过一个名为“Cygwin DLL”的动态链接库,实现了对Linux API的模拟,使得Linux程序能够在Windows上运行,同时也允许开发者使用常见的Unix命令行工具和开发工具。 2. **软件包管理系统**...

    Cygwin

    总之,Cygwin是一个强大的工具,它为Windows用户提供了Linux/Unix开发环境的便利,使开发者可以在一个熟悉的环境中完成工作,提高开发效率。无论是在教学、学习还是实际项目中,Cygwin都是Windows平台上不可多得的...

    最新Cygwin1.7.9完整离线安装包

    它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的...

    cygwin64安装教程.zip

    **Cygwin64安装教程** ...通过以上步骤,你就成功地在Windows上安装了Cygwin64,从而能够在Windows环境中享受类Unix的开发体验。记住,Cygwin不仅仅是一个模拟环境,它还能够帮助你理解和学习Linux系统的工作原理。

    Cygwin Terminal

    用户需要从Cygwin官方网站下载安装程序,然后在安装过程中选择必要的包,包括开发工具链(如gcc)、头文件和库(如`libjava`、`libzip`等),以及可能需要的其他工具,如版本控制工具Git。 在Cygwin Terminal中,...

    cygwin.rar

    Cygwin是一个在Windows操作系统上模拟Linux环境的开源工具集,它提供了类Unix的命令行界面和许多Unix工具,使得开发者可以在Windows上运行Linux命令和程序。 描述中提到"Cygwin 64位 Win10系统安装教程",意味着这...

    Eclipse cygwin 配置

    在这个过程中,文档"win平台下的Cygwin安装GCC.doc"应该提供了详细的安装和配置步骤,包括可能遇到的问题和解决方法。它可能还会包含如何在Eclipse中设置调试器,以及如何利用Cygwin环境执行各种开发任务等信息。 ...

    cygwin-x64

    6. **开发工具**:对于开发者来说,Cygwin提供了一整套构建工具链,包括GCC、Make、Git等,使得在Windows上进行跨平台开发变得可能。 7. **软件更新**:Cygwin有一个内置的包管理系统,可以通过`apt-cyg`或`setup....

    Cygwin使用指南

    它主要用于帮助用户在Windows环境中模拟UNIX/Linux操作系统的工作环境,便于进行应用程序移植、学习UNIX/Linux操作环境以及进行特定的开发工作,特别是使用GNU工具集在Windows上进行嵌入式系统的开发。 #### 二、...

    windows上安装cygwin问题汇总

    本文旨在总结我在安装Cygwin过程中遇到的问题以及相应的解决方案,希望能够帮助到更多的人。 #### 二、安装步骤与常见问题 ##### 1. 安装时用户权限问题 **问题描述**:在安装Cygwin的过程中,如果使用的是普通...

    Cygwin及windows上安装tcpreplay必要软件

    Cygwin是一个在Windows上模拟Linux环境的开源软件集合,它提供了一个兼容POSIX的API,使得许多Linux下的命令行工具和应用程序可以在Windows上运行。在本例中,我们用到的Cygwin setup-x86_64.exe是安装程序,下载并...

    嵌入式Linux开发资料

    **嵌入式Linux开发**是指在嵌入式系统中使用Linux操作系统作为开发平台的过程。嵌入式系统广泛应用于各种设备中,如手机、路由器、汽车电子系统等。为了有效地进行开发工作,构建一个合适的开发环境是非常关键的。 ...

    cygwin 桌面unix

    它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的...

Global site tag (gtag.js) - Google Analytics