sln2makefile ---从Visual Studio 的.sln文件生成linux下的makefile

0 views
Skip to first unread message

lihongt...@gmail.com

unread,
Dec 15, 2006, 6:24:39 AM12/15/06
to 李洪涛的论坛
近年来做的东西基本都是跨 windows 和 linux
这2套系统的,因此经常会在2个系统下编译。
linux下的 IDE
没怎么用过,大名鼎鼎的emacs用起来也极不适应,也许是用visual
studio太久的缘故。所以经常是在vc下编写代码,然后2边编译。

最初是自己写makefile,每添加一个cpp文件都要向makefile中添加,后来知道通配,可惜通配会把一些项目无关的文件也包含进来,极有可能编译不能通过,极其不爽。
自己写makefile还有一个问题就是vc的项目设置比如一些特定的宏定义等都要自己添加也挺麻烦的。

后来把vc的项目文件(.vcproj)
打开一看,发现它是一个xml文件,于是找了个xml的解析工具,自己写了段代码把它解出来,把自己的需要的一些东西比如IntDir,
OutDir,ProjectName,
ProjectDir,PreDefine等,按照自己需要的格式写入makefile,并且可以遍历得到项目中的所有文件,因此也可以自动的导入文件列表。每次项目在linux下编译之前先自动生成一下makefile,一切问题解决。

再后来发现项目依赖没法解决,要在生成makefile之后手工添加,这是不能接受的,于是我又打开vc的solution文件,发现格式也很简单,有我需要的依赖关系记录。

于是我干脆又做了一个解析sln文件的东西,一切趋于完美。编译一个大型的网络游戏服务器的所有项目一个make指令就全部搞定了。

于是这个程序代码被束之高阁,换到另外一家公司后,需要的时候发现找不到了。日。
托朋友找到的代码却只有前面一段,可执行文件因为linux的版本不同动态库不同而无法运行。害得我只能重写,郁闷了一天。

现在总算能用了,可以从sln得到所有项目的Debug和Release配置的makefile
等以后需要的时候把它做成一个比较完善的工具,说不定有很多人跟我一样需要它。

yunc...@gmail.com

unread,
Dec 19, 2006, 7:04:55 AM12/19/06
to 李洪涛的论坛
这个解决问题的解决思路很有用,在下个阶段的工作中,我肯定会需要这个工具。
Reply all
Reply to author
Forward
0 new messages