Chinaunix

标题: 将Linux代码移植到Windows的简单方法 [打印本页]

作者: painkiller0513    时间: 2009-03-18 21:28
标题: 将Linux代码移植到Windows的简单方法

转载自http://os.yesky.com/lin/37/2648537.shtml
共4页,这只是第1页。



一.前言
  Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法正常编译的。Windows平台根本无法直接利用这
些源代码资源。如果想要使用完整的代码,就要做移植工作。因为C/C++
Library的不同和其他的一些原因,移植C/C++代码是一项困难的工作。本文将以一个实际的例子(Tar)来说明如何把Linux代码移植到
Windows平台上。移植过程将尽量少修改代码,以便代码的运行逻辑不会发生任何变动。保留绝大部分软件主要功能。

  二.准备工作
  Tar是Linux平台下面一个打包工具。移植这样一个程序到windows平台需要做那些工作呢?
  首先是一些准备工作,在Windows平台上面安装上Cygwin的最新版本,在Cygwin中安装好GCC等开发工具。
同样也需要一个Windows开发环境。可以使用最新版本Visual Studio, Microsoft Visual Studio .NET
2003。从www.gnu.org上取得Tar的最新源代码,版本是1.13。在Cygwin下面解开tar-1.13.tar.gz.源代码包。注意
请不要在Windows下面使用WINRAR或者WINZIP来解压缩。
WINRAR和WINZIP在
一.前言
  Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法正常编译的。Windows平台根本无法直接利用这
些源代码资源。如果想要使用完整的代码,就要做移植工作。因为C/C++
Library的不同和其他的一些原因,移植C/C++代码是一项困难的工作。本文将以一个实际的例子(Tar)来说明如何把Linux代码移植到
Windows平台上。移植过程将尽量少修改代码,以便代码的运行逻辑不会发生任何变动。保留绝大部分软件主要功能。

  二.准备工作
  Tar是Linux平台下面一个打包工具。移植这样一个程序到windows平台需要做那些工作呢?
  首先是一些准备工作,在Windows平台上面安装上Cygwin的最新版本,在Cygwin中安装好GCC等开发工具。
同样也需要一个Windows开发环境。可以使用最新版本Visual Studio, Microsoft Visual Studio .NET
2003。从www.gnu.org上取得Tar的最新源代码,版本是1.13。在Cygwin下面解开tar-1.13.tar.gz.源代码包。注意
请不要在Windows下面使用WINRAR或者WINZIP来解压缩。
WINRAR和WINZIP在解压缩某些tar.gz包的时候会有问题。使得解包之后的目录和文件出现异常。如果是源代码包将有可能不能在Cygwin下
面正确编译。解开压缩包之后,进入
tar-1.13目录,在当前的目录下面输入./configure命令,运行完毕之后,再次输入make命令。开始编译tar的Cygwin版本。编译
基本上不会有问题,进入src目录,可以看到新编译好的Tar程序tar.exe。
  Cygwin是一个API层的Linux模拟环境。如果能够在Cygwin下面编译,运行。实际上也就是能在Windows下面编
译和运行,只是需要有一层中间API模拟某些Linux特有的操作。简单的判断一个Linux程序能不能移植到Windows平台下面,就是看是否能在
Cygwin下面编译源代码,并运行程序。
  在Cygwin中编译Tar的源代码,判断能否移植只是其中一个原因。另外一个原因是移植代码过程中需要一个特殊的头文件
config.h。config.h是移植过程中最重要的源代码文件。Config.h文件并不是源代码本身的一部分。文件是在Cygwin下面运行”.
/configure”命令时生成的。在Cygwin下运行”./Configure”命令时,会根据Cygwin平台开发环境生成config.h文
件。编译时也需要config.h文件对代码编译项进行控制。移植工作也以config.h文件为基础。
  接下来就是构造Windows工程。先用Visual Studio .NET
2003创建一个空的工程(Project),命名为WinTar。根据Cygwin中的编译输出信息,Tar主要的代码在Src和lib两个目录中。把
这两个目录复制到新工程里,并把代码加入到工程中。然后复制Config.h到WinTar工程目录下面。
  准备工作基本上完成了,接着就是移植。移植过程可以分为3个部分。
解压缩某些tar.gz包的时候会有问题。使得解包之后的目录和文件出现异常。如果是源代码包将有可能不能在Cygwin下
面正确编译。解开压缩包之后,进入
tar-1.13目录,在当前的目录下面输入./configure命令,运行完毕之后,再次输入make命令。开始编译tar的Cygwin版本。编译
基本上不会有问题,进入src目录,可以看到新编译好的Tar程序tar.exe。
  Cygwin是一个API层的Linux模拟环境。如果能够在Cygwin下面编译,运行。实际上也就是能在Windows下面编
译和运行,只是需要有一层中间API模拟某些Linux特有的操作。简单的判断一个Linux程序能不能移植到Windows平台下面,就是看是否能在
Cygwin下面编译源代码,并运行程序。
  在Cygwin中编译Tar的源代码,判断能否移植只是其中一个原因。另外一个原因是移植代码过程中需要一个特殊的头文件
config.h。config.h是移植过程中最重要的源代码文件。Config.h文件并不是源代码本身的一部分。文件是在Cygwin下面运行”.
/configure”命令时生成的。在Cygwin下运行”./Configure”命令时,会根据Cygwin平台开发环境生成config.h文
件。编译时也需要config.h文件对代码编译项进行控制。移植工作也以config.h文件为基础。
  接下来就是构造Windows工程。先用Visual Studio .NET
2003创建一个空的工程(Project),命名为WinTar。根据Cygwin中的编译输出信息,Tar主要的代码在Src和lib两个目录中。把
这两个目录复制到新工程里,并把代码加入到工程中。然后复制Config.h到WinTar工程目录下面。
  准备工作基本上完成了,接着就是移植。移植过程可以分为3个部分。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/28889/showart_1867746.html




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2