将VC步伐移植到LINUX的几点心得
作者: Austria 出自: http://www.linuxdiyf.com
故意偶尔我必要建造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 进行编写。同时将操纵步伐运用的线程数最小化,线程越多越难移植。将输入输入模块自力出来。着末分别出控制模块,这个模块与用户进行交互。
版权声明:
原创作品,容许转载,转载时请务必以超链接形式标明文章 原始来因 、作者信息和本声明。不然将穷究法令责任。