由CMake构建的vs2005项目的弊端之我见

距离第一次使用CMake已经3~4个月了,虽然这个工具能由彻头彻尾的源代码生成各种IDE下面的项目

但我还是感到很不爽,因为所生成出来的项目并不完全等同于真正意义上的实打实的项目,这个不容易理解

我可以举个例子,如同我将box2d的源码生成为VS2005的项目之后

ok,虽然双击build出来的.sln文件可以正常编译生成出来的项目,但是,

实际上项目中的头文件还是在源码文件夹下面的,也就是说,

在这个生成出来的VS2005项目中,cpp文件,h文件只相当于源码文件夹中的快捷方式~

3个月前刚刚研究box2d源代码的时候,对box2d是刚认识,对c、c++也不熟练,对vs2005 c++部分更是不熟练

我就每天鼓捣项目设置,争取能够理解项目设置中每一项设置到底会影响到什么,就是下面这个图里面的东西:

由CMake构建的vs2005项目的弊端之我见_第1张图片

我花了很长一段时间来摸索,因为我有一个很明确的目标,我要将box2d里面的所有源码文件copy到项目的文件夹里面

不再使用由cmake生成出来的那种所有源代码文件都被映射成快捷方式的项目,这样的话让我感觉自己对项目的结构了如指掌,踏实!

可以对比一下cmake生成出来的项目真正包含.cpp,.h文件的项目间的差别:

1.项目在文件系统中目录结构的对比:

下面是真正包含cpp,h文件的vs2005项目在文件系统中的目录结构

由CMake构建的vs2005项目的弊端之我见_第2张图片

下面是由cmake生成出来的vs2005项目在文件系统中的目录结构(包含的是由源文件编译好的obj文件):

由CMake构建的vs2005项目的弊端之我见_第3张图片

2.用vs2005打开项目之后的对比:

下面是我由源码重新构建(包括freeglut,glui这两个框架类库,使用的源码而非lib,dll文件)的box2d项目:

由CMake构建的vs2005项目的弊端之我见_第4张图片

下面是由cmake构建出来的项目

(看着好像cpp文件就在项目文件夹中,实际上如上所述,这里所陈列的仅仅是如同快捷方式版的物件):

由CMake构建的vs2005项目的弊端之我见_第5张图片

当然,这也仅仅只是我的个人意见,在大牛们看来,一份源码供多种IDE共同使用,这样很好!!

但是在我这个小菜菜看来,任何脱离我掌控的东西所带给我的都是迷惘,我必须要搞清楚其间的真相

这就是我对cmake所生成项目的看法~

有一天,我会试着去深入了解cmake所带来的好处,但是这个离现在应该还有蛮长一段时间~

3.Box2D压缩包解压后的目录层级结构:

由CMake构建的vs2005项目的弊端之我见_第6张图片

CMakeGui由Box2D源码生成VS2005项目的配置

由CMake构建的vs2005项目的弊端之我见_第7张图片

你可能感兴趣的:(Make)