在vs2008下使用cygwin(1):前言

 

快乐虾

http://blog.csdn.net/lights_joy/

lights@hb165.com

   

 

本文适用于

Cygwin-1.16

Vs2008

   

欢迎转载,但请保留作者信息

 

Cygwin是一个在windows下编译运行linux应用程序的平台,它由两部分组成。一个是核心的cygwin1.dll,这个dllwindowsapi实现了Linux下的大部分API。另一个部分则是newlib,实际上就是glibc,它将调用cygwin1.dll中的实现,然后以glibc的形式呈现给用户使用。

这两部分的代码可以通过CVScygwin.com的服务器上获得。

Vs2008是一个不错的集成开发环境,如果能够将cygwinvs2008编译,并使之与vs2008下的c runtime library协同工作,那么其产生的效益将是非常大的。大到什么程度,自己想去吧,呵呵!由于cygwin编译出来的程序最终要在windows下运行,最终也只能使用windows提供了服务,这就为cygwinvs2008下的编译提供了可能。

因为cygwin最终提供的是glibcapi,而又希望它可以和vs2008libc混合使用,那么分析glibc的代码就是首要的任务。

glibc主要可以分为应用型的函数和平台依赖型的函数,前者如字符串处理函数,后者如io函数。

对于前一类的处理比较简单,因为vc也提供了自己的一些同名同功能的函数,直接使用vc提供的函数即可,而对于那些vc没有提供了函数,如argz_*之类的,可以将它们看成是vc库函数的一种有益补充。

关于平台依赖型的函数就有点复杂,因为有些处理函数是重名的,比如fopen之类的,这个时候只能采取函数重命名的方法,在cygwin的名称中加上一个cyg_之类的前缀。

此外还有一个重要的问题:头文件的包含路径问题。如果希望同时使用cygwinvc,那么同名头文件的包含就会引起相当的困扰。为此可以将cygwin中的头文件都加上一个比较长的路径,比如将

#include <stdio.h>

改为;

#include <cygwin/newlib/libc/include/stdio.h>

Cygwin的编译大致可以分为三步,首先生成libc.a的静态库,然后生成libm.a的静态库,最后生成cygwin.dll,好了,Let’s go………..

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌云阁主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值