将Linux代码移植到Windows的简单方法(2)

文章作者 100test 发表时间 2007:03:14 16:32:34
来源 100Test.Com百考试题网


第二步,调整各种数据类型的定义,可能在linux下面会有很多特殊的数据类型定义,Config.h文件中也包含了一部分可以变动的数据类型定义项。这些定义一般都是基本数据类型的重定义。可以根据Windows平台下的数据类型定义情况进行修补。比如在Cygwin的开发环境中有个数据类型mode_t, Visual Studio的C Library中却(作者 很土,联系方法 jackforce at 163 dot com)找不到这样数据类型。Tar代码中使用了大量的mode_t数据类型. config.h中提供了修改项来让开发人员自己修改mode_t的定义,并提示如果mode_t在中没有定义的话,可以把他定义为int型。所以在config.h加上#define mode_t int。这样mode_t没有定义的问题就解决了。其他的数据类型也是同样对待处理。

/* Define to `int' if  doesn't define. */

#define mode_t int 



/* Define to `long' if  doesn't define. */

/* #undef off_t */



/* Define to `int' if  doesn't define. */

#define pid_t int

第三步,调整各种函数定义。在Config.h中除了HAVE_XXXXX_H之外还有一种预定义,HAVE_XXXX。 这是一些可选用函数定义开关。#define HAVE_MEMSET 1 表示工程中可以使用memset函数。也就是说工程用到的类库中已经实现了这个函数。如果没有,那么就需要#undef HAVE_MEMSET,当然也可以自己提供这些函数。

/* Define if you have the memset function. */

#define HAVE_MEMSET 1



/* Define if you have the mkdir function. */

#define HAVE_MKDIR 1



/* Define if you have the mkfifo function. */

#define HAVE_MKFIFO 1



/* Define if you have the munmap function. */

#define HAVE_MUNMAP 1

最后,Config.h文件中除了上面的头文件,函数,数据类型编译选项之外,还有其他一些东西,比如环境变量,其他编译选项。这些内容会根据不同的项目而有很大的不同。但是可以从Config.h基本看出移植的工作量有多大。



相关文章


将Linux代码移植到Windows的简单方法(3)
将Linux代码移植到Windows的简单方法(1)
将Linux代码移植到Windows的简单方法(2)
将OS_2应用程序移植到Linux操作系统(3)
如何使用GUI来配置Linux系统防火墙(1)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛