使用cygwin移植Linux的项目到Windows下之总结

使用cygwin移植Linux的项目到Windows下之总结
关键字: cygwin,MinGW,移植,Linux,Windows

一、why
    接到一个任务,把公司的某个在Linux下开发的项目(也就是一个程序啦)移植到Windows下,使得其可以在Windows下运行,并且运行的结果当然要是正确的啦,何谓正确,当然就是和Linux运行结果比对,一样就行。
二、难在何处
    难就难在如何在Windows下编译通过。假设你在Linux下开发了一个这样的程序:
    #include<stdio.h>
    int main()
    {
        printf("Hello World\n");
        return 0;
    }
    那我表示移植Windows下毫无压力,因为此程序中并没有使用Linux独有的API。但是当你的程序中使用了Linux独有的API时,那移植起来就有很多工作量了。
三、基本思想
    做最坏的打算,你的程序里面用了很多Linux独有的API(其实你也不能说全哪些是Linux独有的API),然后移植到Windows下,编译的时候报错:找不到xxx.h的头文件,很明显此xxx.h头文件在Windows中是没有的,进而该头文件中声明的某些函数也是Windows没有的,或者Windows下类似的API不是放在这个头文件中声明的。
    此时,你考虑注释掉这个#include<xxx.h>,接下来再编译,不出意外应该是报错:某某函数未定义。那么这下就找到了xxx.h中被引用的函数了。于是下一步,你应该考虑是否Windows下有相对应的函数来完成类似的工作,如果你对Windows不熟,不好意思,只能上网查啦。MSDN是个好去处。
    假设你找到了Windows下对应的函数,尝试更换#include<xxx.h>,改成#include<yyy.h>(yyy.h是Windows下对应的那个API的声明头文件),然后下面调用的地方也相应的做些小修改。然后再验证结果是否正确。
    假设你找不到Windows下对应的函数,不好意思,你杯具了。你得自己或者从网上找资料来用Windows的环境来构造一个新的API,情况一般会很麻烦,一般会让人感到沮丧。
四、新的希望
    让我们停下来想想,Linux下有这么多好用的东西,很多东西人们都想移植到Windows下,只是你一个人碰到这个问题吗?答案是否定的,已经有无数的人们遇到这个问题了。或许你又在想,有没有一种工具,利用Windows的一些函数来实现Linux独有的API吗?恭喜你,真有!
    下面请cygwin隆重出场。
五、什么是cygwin
    与其我在这介绍cygwin是什么,还不如直接看一下百科全书,当然啦,不是百度百科,是wiki百科。http://zh.wikipedia.org/wiki/Cygwin 
六、cygwin怎么用
    这就是重点了,下面说说使用过程吧,亲测。
    下载cygwin,安装cygwin,这个就不多说了。。。ps:在安装cygwin的时候,如果不懂的话就全选了,但是代价是起码10G+的硬盘空间,而且不知道要装多久,我挂了两天机。
    安装完之后,记得把C:\cygwin\bin添加到环境变量PATH中去,然后就启动cygwin,看到一个shell界面(小黑框),然后把项目放到/home/michael下,然后进入到对应的目录,make。很神奇,就这样通过了。。。然后最好是把Makefile的TARGET改成xxx.exe,然后你试试,把xxx.exe拖出来双击运行或者放cmd里面加上参数运行,是不是成功了?

转载于:https://my.oschina.net/michaelyuanyuan/blog/68615

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值