设为首页 加入收藏

TOP

移植最新版libmemcached到VC++的艰苦历程和经验总结(下) (三)
2014-11-23 21:25:15 】 浏览:1374
Tags:移植 最新版 libmemcached 艰苦 历程 经验 总结
在我移植0.49和0.53时,体现得非常充分。

  2. 在移植过程中,为了保证顺利通过编译,每个版本都需要进行多处修改,而且每个版本修改的地方也不一样,有意思的是,和0.53相比,0.49需要修改的地方相对较少,移植过程也更加容易。

  3. 修改的方式五花八门,最简单的就是gcc和VC在C++语法支持上的细节差异,这个相对简单,相信每一个有代码平台迁移经验的人都会遇到这样的问题,再有就是冲突问题,比如libmemcached在一个枚举中包含TRUE、FALSE、ERROR、FLOAT和SOCKET这样的枚举成员,不幸的是,它们与windef.h中定义的宏和typedef冲突了,因此我不得不将枚举中的TRUE改为TRUE1,以此类推。在修改中最让我担心的是需要直接注释掉一些Windows中不包含的头文件,而这些文件在Mingw32中也没有提供。

  4. 调试相对困难,事实上在这次迁移0.53的最后,我通过在libmemcached相应的函数中添加printf函数,输出调试信息,最终定位并修复了Socket连接的问题,但是整个过程非常繁琐,因为libmemcached是通过gcc编译的,因此无法在VC的工程中进行调试。当然,基于VC的测试用例在gdb下调试libmemcached也是可以的,对于习惯使用IDE的人来说,通过命令行方式调试第三方类库,其难度可想而知。

  5. 说了这么多,最终的结果只有一个,Linux下继续享用libmemcached和memcached服务器给我们带来的成就感,也感谢他们的开发者无私的奉献。至于libmemcached for Windows?希望他的作者Mrs Brian Aker能够在未来的版本中予以足够的关注,也期望libmemcached 1.0版本在发布时能够提供VC++的工程文件。

八、结束语:

  希望这两篇文章不仅仅是让您了解了更多关于libmemcached的细节,授人以鱼,不如授人以渔,更希望的是与您分享我在基于不同平台迁移C/C++代码的经验。如果您有更好的方法或技巧,欢迎指正,让我们来共同提高。总之,分享是快乐的。

作者 Stephen_Liu

首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇vc.net中实现启动画面来个淡入淡出 下一篇VC#中从Clipboard保存获取数据的..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目