距离第一次使用CMake已经3~4个月了,虽然这个工具能由彻头彻尾的源代码生成各种IDE下面的项目
但我还是感到很不爽,因为所生成出来的项目并不完全等同于真正意义上的实打实的项目,这个不容易理解
我可以举个例子,如同我将box2d的源码生成为VS2005的项目之后
ok,虽然双击build出来的.sln文件可以正常编译生成出来的项目,但是,
实际上项目中的头文件还是在源码文件夹下面的,也就是说,
在这个生成出来的VS2005项目中,cpp文件,h文件只相当于源码文件夹中的快捷方式~
3个月前刚刚研究box2d源代码的时候,对box2d是刚认识,对c、c++也不熟练,对vs2005 c++部分更是不熟练
我就每天鼓捣项目设置,争取能够理解项目设置中每一项设置到底会影响到什么,就是下面这个图里面的东西:
我花了很长一段时间来摸索,因为我有一个很明确的目标,我要将box2d里面的所有源码文件copy到项目的文件夹里面
不再使用由cmake生成出来的那种所有源代码文件都被映射成快捷方式的项目,这样的话让我感觉自己对项目的结构了如指掌,踏实!
可以对比一下cmake生成出来的项目与真正包含.cpp,.h文件的项目之间的差别:
1.项目在文件系统中目录结构的对比:
下面是真正包含cpp,h文件的vs2005项目在文件系统中的目录结构
下面是由cmake生成出来的vs2005项目在文件系统中的目录结构(包含的是由源文件编译好的obj文件):
2.用vs2005打开项目之后的对比:
下面是我由源码重新构建(包括freeglut,glui这两个框架类库,使用的源码而非lib,dll文件)的box2d项目:
下面是由cmake构建出来的项目
(看着好像cpp文件就在项目文件夹中,实际上如上所述,这里所陈列的仅仅是如同快捷方式版的物件):
当然,这也仅仅只是我的个人意见,在大牛们看来,一份源码供多种IDE共同使用,这样很好!!
但是在我这个小菜菜看来,任何脱离我掌控的东西所带给我的都是迷惘,我必须要搞清楚其间的真相
这就是我对cmake所生成项目的看法~
有一天,我会试着去深入了解cmake所带来的好处,但是这个离现在应该还有蛮长一段时间~
3.Box2D压缩包解压后的目录层级结构:
CMakeGui由Box2D源码生成VS2005项目的配置
分享到:
相关推荐
cmake 常用的环境变量,cmake 多文件多目录的学习的简易例子,cmake 学习的基础知识, cmake 常用的Linux代码目录构建方式
利用CMake来构建依赖glfw、glew、glm以及opengl核心库等库的OpenGL项目
cmkae使用方法介绍
在 linux 下使用 CMake 构建应用程序 级别:初级 王程明 (wangchengming.jlu@gmail.com), 硕士研究生, 吉林大学计算机科学与技术学院 2009 年 2 月 05 日 本文介绍了一个跨平台的自动化构建系统 CMake 在 ...
课程设计项目-基于Arduino+CMake构建物流机器人项目代码+文档说明 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,...
这是在ubuntu16.04系统下,用C++通过cmake构建qt5.12的工程模板。 自动根据.ui文件生成.h和cpp文件,利用qtcreator修改.ui文件后,无需其他设置,直接make可生成修改后的界面。 使用方法一:按照普通的cmake工程...
在linux下使用CMake构建应用程序。共享给大家,希望能够共同学习,进步。 在linux下使用CMake构建应用程序。共享给大家,希望能够共同学习,进步。 在linux下使用CMake构建应用程序。共享给大家,希望能够共同学习...
go_cmake 假设您是一家商店。 继续断言您想将用于一两个项目。 Go 有一个经过深思熟虑的构建系统。 可以让它与 CMake 一起玩吗? 这是一个尝试。 指示 在顶级文件中,包含 : cmake_minimum_required(VERSION 3.0...
通过cmake搭建vs和qt开发环境实例代码, 主要是CMakeLists.txt
tbb, Intel r5与CMake构建系统 Intel(R) 线程生成块 这是目前基于TBB更新,并且将不时更新以跟踪最新版本的git知识库。 唯一的修改是添加基于的构建系统。因为r5可以很容易地使用git子模块和简单的add_subdirectory ...
使用vscode cmake插件构建的CMake工程模板
CMake是一个跨平台的开源构建工具,用于管理和构建软件项目。它使用简单的配置文件来描述项目的构建过程,并生成适用于不同平台和编译器的构建脚本。CMake的主要特点包括: 跨平台支持:CMake可以在多个操作系统上...
在原版的基础上,修正了若干小错误,并添加了简单的目录。
cmake构建sln及工程文件的简单示例。附原始工程文件和cmakelist.txt。示例中配置工程包含头文件源文件资源文件,及编译选项的方法。示例中只配置了release x64版本。未对复杂目录结构进行说明,有兴趣可参考官方文档...
windows vscode jsoncpp cmake c++ 构建项目
大型的C/C++项目经常包含较多的文件,文件目录可能较为复杂,或者需要生成一些动态或静态库方便其他项目使用,我们尽量简化代码,使用满足一般项目构建的函数,展示CMake用于项目构建所需流程及操作。
环境:Cmake,libevent 内容:Cmake选择vs2015_x64平台,创建libevent项目
cmake大全,详细介绍了cmake的安装、配置、使用;可谓是不可多得好书,网上很多只介绍了一部分,这本书从基础到高级,都有介绍
使用CMake构建跨平台应用程序,论文,讲解的相对细致,共享给大家。比看Ken Martin,Bill Hoffman编著的英文版《Mastering CMake 》要快些。
使用CMake和VS2008(VS2010)查看Opencv源代码