精华内容
下载资源
问答
  • 满意答案yiube2002013.12.11采纳率:55%等级:12已帮助:14073人CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所...

    满意答案

    yiube200

    2013.12.11

    采纳率:55%    等级:12

    已帮助:14073人

    CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

    CMake 可以编译源代码、制作程式库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支持静态与动态程式库的建构。

    “CMake”这个名字是“cross platform make”的缩写。虽然名字中含有“make”,但是CMake和Unix上常见的“make”系统是分开的,而且更为高阶。

    00分享举报

    展开全文
  • 我希望这个问题将谁喜欢我的许多新手参考,发现它完全傻了眼关于究竟发生了什么事情幕后,这样一个小CMakeLists.txt文件时CMake的工作原理是什么cmake_minimum_required (VERSION 2.6)project(Tutorial)add_...

    我不是问自己。我希望这个问题将是谁喜欢我的许多新手参考,发现它完全傻了眼关于究竟发生了什么事情幕后,这样一个小CMakeLists.txt文件时CMake的工作原理是什么?

    cmake_minimum_required (VERSION 2.6)

    project(Tutorial)

    add_executable(Tutorial tutorial.cpp)

    这么小tutorial.cpp ​​

    有这么多的文件生成的

    CMakeCache.txt cmake_install.cmake Makefile

    CMakeLists.txt tutorial.cpp

    ,并与个CMakeFiles文件夹Ø许多文件和文件夹

    CMakeCCompiler.cmake CMakeOutput.log Makefile.cmake

    cmake.check_cache CMakeSystem.cmake progress.marks

    CMakeCXXCompiler.cmake CMakeTmp TargetDirectories.txt

    CMakeDetermineCompilerABI_C.bin CompilerIdC Tutorial.dir

    CMakeDetermineCompilerABI_CXX.bin CompilerIdCXX

    CMakeDirectoryInformation.cmake Makefile2

    虽然不知道发生了什么事情幕后(即:为什么那么可以文件必须产生什么他们的目的),是能够学习C进行最大障碍。

    如果有人知道,为了后代的缘故,请您解释一下吗?这些文件的用途是什么,当我输入cmake .时,在构建项目之前cmake的配置和生成到底是什么?

    2013-07-08

    Nav

    +0

    我知道out-of-source构建。如果任何人没有做一个源代码构建,并仍在寻找一种方法来清理生成的文件,这种技术效果很好:http://stackoverflow.com/a/12055610/453673 –

    +3

    有很好的描述:http:///www.aosabook.org/en/cmake.html,并可能深入地回答问题(这里不能总结)。 –

    +0

    @SebTu断开的链接。 cmake.html页面不存在。 –

    展开全文
  • 你机子的某个盘里建一个新的文件夹,如我这里的完整路径:d:\cmake\cmake-study\hellocmake; 然后在hellocmake文件夹里建立一个hellocmake.cpp文件,里面的代码如下:#include int main(){std::cout好,这些比较...

    你机子的某个盘里建一个新的文件夹,如我这里的完整路径是:d:\cmake\cmake-study\hellocmake; 然后在hellocmake文件夹里建立一个hellocmake.cpp文件,里面的代码如下:

    #include int main()

    {

    std::cout

    好,这些比较琐碎的东西介绍完,我们一起来看看cmakelists.txt里面的代码表示什么意思,争取每句代码都作解释,如果有不对的地方,一定要告诉我!

    图(5)

    图(6)

    把cmakelists.txt里的内容再罗列出来:

    1. cmake_minimum_required(version 2.6)

    2. project(hellocmake)

    3. add_executable(hellocmake hellocmake.cpp)

    第1行,cmake_minimum_required(version 2.6)这是对cmake版本的要求,基本上每个cmakelists.txt文件里都会有这句代码,cmake_minimum_required是cmake里的命令,可大写小写。version这个关键字必须是大写,而且不能省略;2.6就是cmake的版本号,现在的版本是2.8.3。

    第2行,project(hellocmake),project也是cmake的命令,里面的参数hellocmake是你要生成的工程的名字,换句话说就是生成的***.sln或者***.dsw等工程项目文件的名字。

    第3行,add_executable(hellocmake hellocmake.cpp),add_executable同样是cmake的命令,链接有关的源文件,然后生成exe可执行文件,这是这个命令的作用。第一个参数是生成的exe文件的文件名,一般与project里的工程名一致,这样编译生成的文件就分别是hellocmake.sln和hellocmake.exe,当然也可以不一样。add_executable()后面的是一个参数列表,可带多个要编译的文件名,中间以空格或回车等隔开,如可以加入:

    add_executable(hellocmake hellocmake.cpp hellocmake.h)

    这样就把cmake里最常用的三个命令介绍完了,分别是cmake_minimum_required; project; add_executable等

    展开全文
  • 一、cmake的由来cmake是kitware公司以及一些开源开发者在开发几个工具套件(VTK)的过程中所产生的衍生品。后来经过发展,最终形成体系,在2001年成为一个独立的开放源代码项目。其官方网站是www.cmake.org,可以通过...

    一、cmake的由来

    cmake是kitware公司以及一些开源开发者在开发几个工具套件(VTK)的过程中所产生的衍生品。后来经过发展,最终形成体系,在2001年成为一个独立的开放源代码项目。其官方网站是www.cmake.org,可以通过访问官方网站来获得更多关于cmake的信息,而且目前官方的英文文档比以前有了很大的改进,可以作为实践中的参考手册。

    cmake的流行离不开KDE4的选择。KDE开发者在使用autotools近10年之后,终于决定为KDE4项目选择一个新的工程构建工具。之所以如此,用KDE开发者们自己话来说,就是:只有少数几个“编译专家”能够掌握KDE现在的构建体系。在经历了unsermake,scons以及cmake的选型和尝试之后,KDE4最终决定使用cmake作为自己的构建系统。在迁移过程中,进展一场的顺利,并获得了cmake开发者的支持。所以,目前的KDE4开发版本已经完全使用cmake来进行构建。

    随着cmake 在KDE4项目中的成功,越来越多的项目正在使用cmake作为其构建工具,这也使得cmake正在成为一个主流的构建体系。

    二、为何要使用项目构建工具

    “Hello, world!“这个最经典的程序相信我们每个人都写过。无论在什么平台下,编译和运行这个程序都仅需要非常简单的操作。但事实上,hello,world最多只能算是一个实例程序,根本算不上一个真正的软件项目。

    任何一个软件项目,除了写代码之外,还有一个更为重要的任务,就是如何组织和管理这些代码,使项目代码层次结构清晰易读,这对以后的维护工作大有裨益。试想一下,如果把一个像KDE4那么大的项目像hello world那样,把全部代码都放到一个main.cpp文件中,那将会是多么恐怖的一件事情。别说KDE4,就是我们随便一个几千行代码的小项目,也不会有人干这种蠢事。

    决定代码的组织方式及其编译方式,也是程序设计的一部分。因此,我们需要cmake和autotools这样的工具来帮助我们构建并维护项目代码。

    看到这里,也许你会想到makefile,makefile不就是管理代码自动化编译的工具吗?为什么还要用别的构建工具?

    其实,cmake和autotools正是makefile的上层工具,它们的目的正是为了产生可移植的makefile,并简化自己动手写makefile时的巨大工作量。如果你自己动手写过makefile,你会发现,makefile通常依赖于你当前的编译平台,而且编写makefile的工作量比较大,解决依赖关系时也容易出错。因此,对于大多数项目,应当考虑使用更自动化一些的 cmake或者autotools来生成makefile,而不是上来就动手编写。

    总之,项目构建工具能够帮我们在不同平台上更好地组织和管理我们的代码及其编译过程,这是我们使用它的主要原因。

    三、cmake的主要特点

    cmake的一些主要特点:

    1.开放源代码,使用类 BSD 许可发布。

    2.跨平台,并可生成 native 编译配置文件,在 Linux/Unix 平台,生成 makefile,在 苹果平台,可以生成 xcode,在 Windows 平台,可以生成 MSVC 的工程文件。

    3.能够管理大型项目,KDE4 就是最好的证明。

    4.简化编译构建过程和编译过程。Cmake 的工具链非常简单:cmake+make。

    5.高效率,按照 KDE 官方说法,CMake 构建 KDE4 的 kdelibs 要比使用 autotools 来 构建 KDE3.5.6 的 kdelibs 快 40%,主要是因为 Cmake 在工具链中没有 libtool。

    6.可扩展,可以为 cmake 编写特定功能的模块,扩充 cmake 功能。

    四、cmake的安装

    目前几乎所有主流的Linux发行版的源中都包含有cmake的安装包,直接从源中添加即可。当然,也可以在官方网站下载最新的源代码自行编译安装。源码包地址为:http://www.cmake.org/cmake/resources/software.html

    对于Windows和Mac用户,cmake的官方网站上有相应的安装包,下载安装即可,无须赘述。

    linux安装cmake步骤:

    1. 解压文件

    tar -xzvf cmake-3.10.3.tar.gz

    cd cmake-3.10.3

    2. 依次执行命令

    ./bootstrapmake

    make install

    安装完成后,可执行cmake -version查看版本

    展开全文
  • 也许,你会诧异,.cmake文件是干什么的,甚至会想.cmake文件是不是cmake的正统文件,而CmakeLists.txt并不是。 但其实,CmakeLists.txt才是cmake的正统文件,而.cmake文件是一个模块文件,可以被include到CMakeLists...
  • C/C++从零开始的CMake教程如果你有过在linux系统上...几乎每次都机器人般的操作,这背后其实make(准确地说应该GNU Make)在默默为你了不少活。1.编译hello.c——单一源文件的编译//hello.c#include int main...
  • cmake是一种跨平台的编译工具,比make更为高级,使用起来要方便的多。cmake主要是编写了cmakelists.txt文件,然后用cmake命令将cmakelists.txt文件转化成make所需要的makefile文件,最后用make命令编译源码生成可...
  • CMake相关一.第一次尝试结果:我将源码目录建为src,编译目录建为build.然后在src下建立main,用于放main相关的文件,再在src下建立lib1,用于放一个小库。MagicHappenslikethis:(1)main和lib1中的CMakeLists.txt,...
  • CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行...
  • 要解决的问题 如何查看编译了哪些文件? 如何修改驱动文件?...makefile、cmake、kconfig都是干什么的,他们之间什么关 kconfig cmake makefile 如何查看编译了哪些文件? 如何修改驱动文件? 如何增加驱动? ...
  • 其实的事情和cmake、makefile一抹一样的,所以他能干的事情,cmake依然可以,今天就介绍一种非常方便简单的nodejs的C++扩展编写方式,因为它依赖的文件在linux下仅为node的头文件。window下的话额外需要一个node...
  • cmake在Windows上的使用

    万次阅读 2016-05-01 08:04:30
    cmake介绍cmake是一个构建C++代码的跨平台工具,他能够干什么呢?他能够搜索你的平台环境,然后生成平台上用于Build的文件。在Windows上安装了Visual Studio, 他能够帮你生成.sln, .vcxproj文件。如果在Linux上,...
  • cmake介绍

    2018-06-25 17:43:09
    cmake是一个构建C++代码的跨平台工具,他能够干什么呢?他能够搜索你的平台环境,然后生成平台上用于Build的文件。在Windows上安装了Visual Studio, 他能够帮你生成.sln, .vcxproj文件。如果在Linux上,能够帮你生成...
  • 使用cmake在Windows上编译c++

    千次阅读 2019-03-27 17:53:21
    cmake是一个构建C++代码的跨平台工具,他能够干什么呢?他能够搜索你的平台环境,然后生成平台上用于Build的文件。在Windows上安装了Visual Studio, 他能够帮你生成.sln, .vcxproj文件。如果在Linux上,能够帮你生成...
  • cmake简介

    2016-05-10 18:11:31
    我们已经知道了make是干什么的,编译和构建系统的时候我们需要make来帮我们自动编译文件,你配置好依赖后,make就会自动查看编辑日期与你构建的日期对比,然后忽略掉一些不必要的编译用来加快编译速度。但是写过...
  • catkin_make等效于下列命令: $ cd ~/catkin_ws $ cd src $ catkin_init_workspace $ cd .. ...$ cmake ../src -DCMAKE_INSTALL_PREFIX=../install -DCATKIN_DEVEL_PREFIX=../devel $ make //其中catk...
  • 其实的事情和cmake、makefile一抹一样的,所以他能干的事情,cmake依然可以,今天就介绍一种非常方便简单的nodejs的C++扩展编写方式,因为它依赖的文件在linux下仅为node的头文件。window下的话额外需要一个node...
  • 但是当移步linux下时,除非你使用图形界面,并且使用Qt creater这类的IDE时,才可以继续像windows下一样一键搞定所有事情,否则就不得不接触gcc/g++/make/cmake/makefile/cmakelists这些东西了,那他们是干什么的呢...
  • 项目地址,Vocabulary和Calibration可以在Android版本的demo apk中找到前言说真的,移植就是一个体力活 ...这只是一个SEO的帖子,没有什么干货OpenCV环境配置以及编译略。。ORB_SLAM2的依赖库 & Cmake
  • 【OpenCV】VS2017 + CMake环境配置

    千次阅读 2019-04-26 21:36:02
    其实我也不知道全程我在干什么。。。。我只知道每次配置环境我都要窒息 大致情况:VS2017已安装好,CMake从官网下的最新版本https://cmake.org/download/ 但是我发现不能下载zip格式的,要下载圈出来的.msi格式...
  • makefile与cmake部分总结

    2021-02-09 15:30:27
    目标指要干什么,运行make后生成什么;依赖告诉make如何实现目标; 在makefile中,目标和依赖通过规则(rule)来表达的。 准备环境,需要linux环境,make -v 命令验证是否安装make工具 基本命令: all: ...
  • 文章目录为什么整这么个玩意参考博文...当然只用windows运行C++可能VS更舒服,但我思考了一下,以后的c++运行主要还是在Linux上,所以cmake的跨系统优势得用起来呀老哥。 不多说了,开。 参考博文 Window10上CLi...
  • 第一张图干什么?debug C/C++代码啊!惊不惊险刺不刺激?! 都能够直接debug了,添加文件添加函数肯定超简单的。 第二张图片呢,查看了一下apk包里面的内容可以看到所有c/c++代码都会自动被编译成为so库文件...
  • 可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被...
  • 开始学习openwrt的时候,看到源码树下那一堆路径,真是头大,不知道各个路径是干嘛的,想改点东西也不敢贸然去改,生怕把编译环境给搞坏了。这里简单介绍一下整个源码树下的各个路径都是做什么用的。 刚下载完的...
  • 开发环境:Android Studio 3.5.2;...(灼哥为什么会,因为灼哥IOT行业了几年,设计开发产品消费类监控摄像头,传感器等) 前期准备:NDK开发包下载,Cmake下载;(Android studio可以下载) 此文章主讲...
  • 【入职那些事】

    2015-06-18 00:25:23
    2. 学习makefile(以前在win下开发,从来不用这个,也不知道这个是干嘛的) 3. 学习cmake 4. 学习uml建模 5. 交给我一个项目,让我做需求,概要设计,详细设计; 6. 另外再交给我一个项目,mac

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

cmake是干什么的