WINDOWS工程到LINUX下移植日记(1)

最近在做移植工作,平台原来是在WINDOWS下跑的,开发环境是古老的VC6.0(嘿嘿,本人也就用过VC这个版本)。由于是底层代码,基本是用纯C++写的,对WINDOWS的系统函数依赖性也不大,因此移植难度并不是很大。移植方式是VC工程直接用ECLIPSE编译,并不是想用ECLIPSE来开发,只是借用其生成的MAKEFILE(感觉其生产的MAKEFILE组织的很好,没用过其他的自动生成工具),
然后到生成的DEBUG目录下调试编辑工具选用的是gedit,个人感觉gedit还不错,关键字高亮,比vi好用。(eclipse很慢,不支持gb2312编码,因此WINDOWS下的工程中文注释在eclipse是乱码)

依赖WINDOWS部分的基本都是宏定义的方式解决。

1、LINUX下无strlwr和strpur函数,自己实现即可

2、hash_map在LINUX中加入
#include
using std::hash_map
可能编译时可能不识别hash_map,因为hash_map是后来才加到STL中的,所以可以尝试
(1) 加入using namespace __gnu_cxx
(2) 或者添加
#include
using namespace stdext;

3、## 符号,似乎gcc中不能毗连::和某个字符
    例如 #define __STLP(name) std::##name 编译报错,VC倒是成功的。

4、文件的操作和动态库相关的几个函数比较好替换,LINUX下都有对应的函数可调用。

5、动态库的加载路径,目前可使用的是在/ext/ld.so.conf.d目录下建一个文件xx.conf
文件的内容是so文件所在路径,以root身份运行ldconfig,去了解一下LINUX动态库搜索顺序,还有好几种方法。

6、如果A动态库已经注册到系统中,B依赖于A,在编译B时,无需将A加入也可成功,然后,建立C,C是运行程序,编译时,必须将B加入,如果再编译B时没有把A加入,在编译C时也的加入A.


最近都没什么时间学习ORACLE了 011.gif

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10945710/viewspace-662547/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10945710/viewspace-662547/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值