最初是自己写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
等以后需要的时候把它做成一个比较完善的工具,说不定有很多人跟我一样需要它。