如何实现在Windows上运行Linux程序,附示例代码?

如何实现在Windows上运行Linux程序,附示例代码?,第1张

在Windows中安装Cgwin或minGW软件即可实现linux中程序到Windows中移植。

Cygwin是许多自由软件的集合,最初由CygnusSolutions开发,用于各种版本的MicrosoftWindows上,运行UNIX类系统。Cygwin的主要目的是通过重新编译,将POSIX系统(例如Linux、BSD,以及其他Unix系统)上的软件移植到Windows上。Cygwin移植工作在WindowsNT、Windows2000、WindowsXP以及WindowsServer2003上比较好.

MinGW的库,可以跟Windows本地的MSVCRT库(WindowsAPI)一起工作。MinGW占用内存、硬盘空间都比较少,能够链接到任意软件,但它对POSIX规范的实现没有Cygwin库完备。

cygwin是linux仿真环境

你在cygwin里面开发windows程序属于交叉编译

cygwin调用了cygwin.dll库来支持linux下gcc的函数对windows的支持。

如果不用cygwin.dll,就应该在编译参数中加上 -mno-cygwin ,意思是使用mingw的库来编译。

由此产生的弊端是一些linux中的函数不被支持。

如果要单纯的移植,还是带cygwin.dll一起发布好一点。

但是这种方法也不能保证全部可移植。

C语言能不能移植,还与linux和windows中C库的实现不同有关。

最简单的例子,他们的基础数据类型的表示方法可能不同,在linux中用4个字节表示的,linux中说不定是8个字节。由此你函数的输出结果也就不同。

因此你要做的,就是一点点的翻看两个系统的定义,确保他们的实现一样、不会产生二意性。

另外库函数的返回也可能不一样,也必须排除不同的返回值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11423699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存