将VC程序移植到Linux系统的几点经验心得
2010-08-12 18:16
375 查看
将VC程序移植到Linux系统的几点经验心得
关键词: VC Linux 移植有时我需要制作LINUX与WINDOWS下都可以运行的程序。在一般情况下,我会选择在WINDOWS平台下完成初始的开发。因为VC提供的图形化的编辑与调试界面的确较GCC要高产得多。在完成了测试之后,就开始把它向LINUX移植,移植的过程会有一些需要注意的地方。下面就是我的一些心得。 文件名 由于ext2文件系统对文件名是大小写敏感的,当你在这种文件系统上进行编译的时候,源文件中出现的#include 语句必须小心了。因为在VC环境下,由IDE自动生成的#include 语句,其中的文件名全部是小写的。所以,你需要在一开始就注意这个问题,严格的使用大小写敏感的文件名格式,避免在LINUX下编译时出现找不到头文件的错误。 数据类型 千万不要使用VC独有的数据类型,象__int16, __int32 和__int64 等等,你无法保证其它的编译器能否支持它们。特别是__int64,它确实简化了编程工作,但是当你的逻辑里充满了这样的数据类型的时候,改动就变得无比困难了。还有一个问题就是,我们经常在VC中使用WORD,DWORD,INT,UINT这样的扩展数据类型,不直接使用编译器的数据类型有助于提高在不同平台之间的可移植性。但是LINUX下没有定义这样的类型啊?其实只需要将windows.h和basetypes.h中对这些数据进行定义的语句复制到一个头文件中,再在linux下包括进来就行了。 关键字 关键字是比较好处理的东西,凡是VC中带两个下划线的关键字,比方__asm都是VC独有的。尽量不使用它们,如果实在无法避免,就用#ifdef 和#endif为LINUX和WINDOWS编写两个版本。 MAKEFILE的编写 你可以先用VC导出一个makefile,然后对其进行修改,但我倾向于从中拷贝出一段来生成GCC的makefile,比起手工编写要快许多。 程序设计结构 这绝对是移植过程中问题最大的一个部分。应用程序难免要用到操作系统的服务,如果完全使用标准的C/C++编写,这将不是一个问题,但是当我们使用到多进/线程,管道,或者对WINDOWS图形界面的程序进行移植的时候,这个问题就变得突出了。我们应当从设计上就为程序的移植打好基础。 解决这个问题首先必须搞清楚应用程序的逻辑模块。对于这个模块必须使用标准的C/C++进行编写。同时将应用程序使用的线程数最小化,线程越多越难移植。将输入输出模块独立出来。最后划分出控制模块,这个模块与用户进行交互。 |
相关文章推荐
- 将VC步伐移植到LINUX的几点心得
- 我在大学毕业后学习Linux系统的心得经验
- 总结5条对学习Linux系统有帮助的经验心得
- 总结5条对学习Linux系统有帮助的经验心得
- 我在大学毕业后学习Linux系统的心得经验
- 总结5条对学习Linux系统有帮助的经验心得
- 我在大学毕业后学习linux系统的心得经验
- MiniCRT 64位 linux 系统移植记录:64位gcc的几点注意
- 将 C++ Qt 程序移植至 Linux 系统
- Linux系统管理员成长经验:十一大工作心得
- linux下程序移植到windows下的经验。
- 网友经验共享:安装Linux系统的五种方法以及心得
- 我在大学毕业后学习Linux系统的心得经验
- 【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】 从反汇编来看U-boot在PPC架构下的PIC(位置无关程序)设计
- 移植LINUX的外围设备驱动到QNX系统,linux程序移植到QNX
- VC程序移植到Linux下注意事项
- aix 使用g++编译c++程序的编译选项 -- linux到aix移植经验
- 总结5条对学习Linux系统有帮助的经验心得
- Linux系统管理员成长经验:十大工作心得[转载]