设为首页 加入收藏
行业资讯 武汉城市圈 武汉市 黄石市 鄂州市 孝感市 黄冈市 咸宁市 仙桃市 潜江市 天门市
您现在的位置: 第一武汉网:武汉城市圈商贸资讯专业平台 > 行业资讯 > 电脑软件 > 行业知识
将VC程序移植到Linux系统的几点经验心得
第一武汉网:武汉城市圈商贸资讯专业平台   2008-06-30 10:09:31 作者:第一武汉网 来源:赛迪网  文字大小:[][][]
 

有时我需要制作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++进行编写。同时将应用程序使用的线程数最小化,线程越多越难移植。将输入输出模块独立出来。最后划分出控制模块,这个模块与用户进行交互。

最新评论
发表评论
评论标题
评论内容
图片上传
表情图标
验 证 码
行业资讯分类导航  
化工相关  机械相关  家居用品 
纺织皮革  电脑软件  食品饮料 
包装纸品  农业相关  冶金矿产 
运动休闲  安全防护  玩具相关 
交通运输  电子电工  礼品饰品 
建筑建材  服装鞋帽  商务服务 
家用电器  办公文教  医药保养 
汽车摩托  通讯产品  能源环保 
五金工具  教育培训  生活服务 
招聘求职 
最新推荐行业资讯  
图文频道 下载频道 全站搜索 会员中心 友情链接 关于我们 联系方式 付款方式 广告服务 网址导航
第一武汉网(武汉市及武汉城市圈商务资讯专业门户平台)-运营商:武汉网络家联盟科技有限公司
武汉网络家公司地址:湖北省武汉市武昌区中北路100号  联系电话:027-87332113  87332460  QQ:168581034
Powered By 武汉网络家联盟 WH18.CN 第一武汉网 WH01.CN Copyright © 2006-2008  鄂ICP备09018832号-8
第一武汉网 武汉城市圈商贸门户平台 武汉市公司信息大全 武汉商贸信息大全 武汉公司目录 武汉生活资讯 武汉商圈 武汉企业建网站 武汉综合信息平台
武汉搬家公司|武汉婚庆公司|武汉全托幼儿园|武汉租车|武汉空调移机|湖北电力承装资质|武汉机床厂|青山宠愿   

鄂公网安备 42010602000533号