将C/C++代码从Linux移植到Windows的最佳环境

8
我希望能让我自己的一个大项目可以在Windows平台上构建。 该项目本身是按照POSIX标准使用C/C++编写的,具有一些库依赖项,例如libxml2、libcurl等。 作为一个Linux开发人员,我不知道应该使用哪个编译器套件来移植代码。 有哪些编译器可以更兼容我现在使用的gcc 4.4.3呢?
我的项目需要使用flex和bison,有没有“即插即用”的环境来将这样的项目移植到Windows平台上呢?
谢谢。

3
一个宜人的通风阳光环境,舒适的椅子和即时供应的咖啡。 - James Morris
4个回答

12

如果是我,我会安装以下软件:

这实际上是我自己进行编程的环境,而且它非常有效。如果您想要一个IDE,则建议使用Code::Blocks,但gvim和emacs也适用于Windows。


顺便提一下,http://sourceforge.net/projects/mingw/files/ 上有Unix/Linux到Windows的最新工具。@Simone:那个URL上有你需要的Bison和Flex的最新版本。GNUWin32有历史版本但也很好。由你自己选择。 - Viet
Neil,感谢你指出Twilight Dragon - 我一直对mingw.org的安装程序和缓慢的发布时间表感到沮丧,并不知道还有其他的发行版。 - Drew Hall

4

可能我会使用预编译指令来确定所在的操作系统,以便移植代码,因此即使存在一些Unix调用也不是大问题。 - Simone Margaritelli
如果您不介意编写特定于操作系统的系统调用,那么使用MinGW中的宏就足够了。如果编写Windows代码以替换那些UNIX特定的系统调用对您来说是问题,那么请使用Cygwin。但请记住,Cygwin的DLL是GPL许可的:http://www.cygwin.com/ml/cygwin/1999-07/msg00348.html。 - Viet

1

我非常怀疑cygwin和mingw都还没有升级到4.4.3。我敢打赌在mingw中升级编译器会更容易。

如果你实际上使用了任何Linux特定的东西,你将需要cygwin。你列出的库不是问题,我认为。根据情况,POSIX可能是一个问题。


@Neil:官方MinGW发行版有质量和发布计划的保证。像KDE和Nokia Qt这样的项目依赖于官方MinGW。顺便说一句,直接从4.4.3跳到4.5.0并不总是一个好主意,以防不兼容。另外,官方MinGW也有4.5.0版本。它分发的上一个版本是4.4.0,而不是已修补/更新的4.4.3。 - Viet
@Viet,我在我的回答中推荐的TD版本从未出现过任何问题(事实上相反)。我从未认真使用过nuwen版本,但它很容易安装,所以我想提一下。而且,我会尽可能避免使用MinGW网站 :-) - anon
@Neil:我实际上已经收藏了官方的MinGW下载页面,以避免阅读那个混乱的网站 ;) - Viet

1
一个不错的新选择是Cygnal。基本思想是:
  • 首先,使用其“本地”工具链(而不是MinGW)在Cygwin下为Cygwin自身编译代码。
  • 接下来,使用Cygnal版本的Cygwin DLL部署程序。
Cygnal是主要Cygwin DLL的分支,它改变了某些过于类Unix的行为。
Cygwin的座右铭是“在Windows上获得Linux的感觉”。Cygnal减弱了这种感觉;它将一些Windows的感觉带回程序中,以便这些程序按照Windows的约定为Windows用户工作,而不是使用Cygwin环境之外的Windows。
程序理解本机路径等。Cygwin中的丰富API功能没有被删除,只是进行了少量调整。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接