
在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库完备。
如果想同时在Linux和Windows上运行,最好就不要调用任何Windows或者Linux上面的API(Linux上叫系统调用),因为Linux和Windows的应用程序接口差别还是比较大的。从这个角度来看,可以用Java语言和一些性能较好的脚本语言像是Python、Perl,这样开发出来的程雹派掘序可以无视平源核台差异。或者是软件设计上采用层次结构,对需要调用的Linux系统调用和Windows API分别羡数进行封装,都提供相同的接口,这样上层的代码就是相同的了,从而同时支持Linux和Windows。
跨平台,或者平台无关,是指程序代码在不同环境下具有完全相同的预期功能,可以互相替换。C语言的跨平台一般含义是:在指定的硬件和软件平台下能够正常编译的C语言源代码,在代码满足一定跨平台性的要求后,无需修改即可在另一硬件或软件下编译生成目标文件。这样,源代码是跨平台的。目标代码一般都是对应平台的本地代码,不能跨平台(例如.obj和.elf就不能直接混用;Windows和Linux上的可执行文件一般也不互相兼容)。C语言程序跨平台的实现必需编译环境的支持。对于库,提供源文件,或者提供不同平台下对应编译环境支持的目标文件(例如.lib/.a),可以实现跨平台开发。无法跨平台的部分,是平台相关的接口(例如一些 *** 作系统API),库通过实现一定的兼容层可以克服平台障碍(前提是硬件支持)。注意C语言的标准库在任何支持相同版本标准上的平台上的行为都是一致的(除了标准定义implementiondefined或者undefined的部分,这些部分应该尽量避免使用),是跨平台的;同其它跨平台库一样,是实歼老现跨平台开发的有力用具。在Win/Linux下进行跨平台开发,编译器主要用GCC;可以使用经过配置的MinGW、Cygwin环境;跨平台GUI开发可以考虑wxWidgets等库。至于Java,它事实上就是一个平台(JVM,Java虚拟机),所谓的一次编译,到处执行的跨前兄平台支持是通过不同的Java编译器和JVM来实现的。Java程序的源代码和目标代码都可以跨平台。但是不同的JVM可能实现了不同的特定功能,基于特氏悔升定功能的部分无法保证跨平台。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)