当前位置:  技术问答>linux和unix

求教从Windows->Linux移植的解决方案

    来源: 互联网  发布时间:2015-10-15

    本文导语:  我大致说明一下项目的情况:      1. 项目是在Windows上开发,用VC开发的,是一个console程序      2. 项目由多个工程组成,有些工程是生成DLL,有些是生成静态lib的,主工程主要是做框架性工作。      3. 程...

我大致说明一下项目的情况:
     1. 项目是在Windows上开发,用VC开发的,是一个console程序
     2. 项目由多个工程组成,有些工程是生成DLL,有些是生成静态lib的,主工程主要是做框架性工作。
     3. 程序涉及多线程与网络通讯,其中多线程为了移植,采用的是pthread在Windows中的库,网络通讯就是纯socket了
     4. 代码的其它方面,由于早就考虑了后续工作要将程序移植到Linux上,因此,代码全部采用标准C/C++,而没有使用MFC或Windows API。
   
     整个项目的程序就是这样了。现在需要将它移植到Linux下,请问采用什么方案比较好? 比如说,采用什么样的IDE开发环境比较合适,还有Windows中的DLL和lib方式肯定要弃用了,那么整个项目的结构应该是什么样的?(我想,总不至于全部合成一个大工程吧?),如果还能保持多个工程的状态,那么,应该如何设置,如何连编……
     希望高手给点建议,不胜感谢!

|
没有采用windowsAPI的话,应该移植起来没太大的问题,只看你的代码是不是符合C/C++标准了。socket和pthread可能有些不大的差别,多看man帮助好了。
unix下也有类似windows的.lib和.dll的机制,对应.lib的是.a,用ar命令把.o打包起来生成的。对应.dll的是.so,不同系统有不同生成方法,linux下是用gcc -fPIC -shared -o xxx.so xxx.c 这样编译的。

|
Windows中的DLL和lib 方式是跟 unix 学的,unix 里用 .so(hp-ux 下可能是 .sl) .a
 
unix 下不要用 IDE 因为还要考虑 IDE 本身在各种 unix 平台是否可以运行。

用 emacs 编辑, gcc 编译 gdb 调试这样基本上是在所有的unix 平台都可以。
也没有什么不方便的 apache 工程够大了吧,都是这么写的,只有用惯了 windows 
的人才会觉得 IDE 很重要。

|
xpcom采用的是native的compiler,在win下是用vc编译的。下载xpcom stand  along,装上cygwin,应为要使用cygwin的build工具,用vc6+sp5编译。我编译成功过,只是应为好玩。mozilla可不是吹出来的。


还有一个方法是用boost,自己带跨平台的编译工具,叫bjam。还可以考虑使用ant及其扩展,或者eclipse,c++buildx看 上去也可以

请问众高手,win下的emacs怎么输入中文,用扫描版本????我是21。3。1版本,拼音输入激活出错。


|
用Kylix或者C++ Builder X可能会容易一点。

|
用pthread做线程,用.so代替dll,用信号模拟消息,纯socket在win32/unix下都可以用。
至于工程,学习一下makefile的写法就行。
编辑器继续用VC也行,ftp到linux下去编译就行了。楼主这个项目移植起来应该不难。

|
其实,现在有很多不错的GUI下的IDE,只是不是很想去用觉得也不是很必要,所以都没有去用;
QT是不错(以前我也用过),但就不知道其它的UNIX行不行,LINUX下是没有问题了;
其它还有像Kylix,C++ BuilderX,Eclipse等;
至于版本的控制CVS不就OK啦

好像C++ Builder X和C++ Builder是不同的!

|

好像一直都在讨论工具的问题。其实这个问题应该没有什么好讨论的啊,
很多 unix 下开源工程比如: mozilla、apache 等应该应该已经给出了良
好的范例了。

比如 mozilla 吧
源代码管理             CVS
源代码变更跟踪和察看   Bonsai 和 LXR
持续编译               Tinderbox
bug 管理用             Bugzilla
编译管理               GNU make 和 MS 的 nmake

编译工具和调试工具     比较复杂,我只对 mozilla 的 nspr 部分的早期版本
                       做过,nspr 在 windows 上用 vc 编,linux 和 solaris
                       上用 gcc, hp-ux 上用 hp 的 acc,ibm aix 上用 ibm 
                       的visual age c++ 调试当然也用相应的。不过好像也听说
                       有用 gcc 都能编的。


其实不如你自己去下一套 mozilla 源代码,或者 apache 去看一看吧,对于跨平台
开发者来说是很值得借鉴的。不过我觉的跨平台开发最值得讨论的不应该是工具,
而应该程序的构架。




 


|
上面说的都不错。其实,你写的如果不是GUI程序就不要用GUI下的IDE了。
emacs我是正准备进入中,所以,也不是很熟悉。
不过我一直都在用VI,因为每个*nix版本都会自带VI,而emacs就得自已去安装。
不过emacs是一个真正的IDE,所以也有很多人用。
其实,VIM也有不少人在做其扩展插件,看起来也很像一个IDE,但是只是像而以。
这也许就是她们的区别所在吧。
不过我还是很喜欢VI那种简洁的方法,这也是很多人喜欢VI的原因吧。

其实,没有像QT之类IDE也是可以管理好项目的,你可用make来管理就好了!

|
Qt是个很好的选择呀,我就一直用Qt.而且它提供了很多类,很方便使用。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求教求教,shell问题...各位大哥,帮忙下
  • 400分求教: 求教一简单问题,现场给分
  • 高分求教:如何将JAVA文件(.class)制作成可执行文件(.exe),求教方法或工具推荐
  • 急!!求教linux命令的使用:统计出/bin目录中文件的个数,追加到文件filea的结尾
  • 求教:在UNIX中查找包含指定文字的文件名
  • 小白菜求教linux大鸟
  • JDK1.3.1初级问题求教
  • 初学者有问题求教!
  • 各路高手请进!高分求教,非常着急!
  • 高分求教的问题(关于SendMail设置)
  • 简单问题:从sun网站上当了个jdk1.4b3,bin后缀,求教怎么安装
  • 求教:知道当前时间,如何得到N天前的时间 ?
  • 求教:switch(condition)中的condition 必须为整型吗?
  • Linux远程访问的问题,高分求教:)
  • 求教:在Linux下如何做代理服务器?
  • 紧急求教!究竟Java里面有没有相当于C++的CPOINT的类阿?
  • 求教JAVA中XML解析问题
  • 50分求教,在JSP里如何将String转换成Double
  • 我刚装好,是不是需要配制环境变量?求教。
  • 400分求教JAVA皮肤的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3