-
c make干什么用得_linux里面安装的cmake 软件到底是干什么用的啊?
2020-12-20 05:46:01满意答案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分享举报
-
c make干什么用得_CMake的工作原理是什么?
2020-12-20 05:45:32我希望这个问题将是谁喜欢我的许多新手参考,发现它完全傻了眼关于究竟发生了什么事情幕后,这样一个小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页面不存在。 –
-
c make干什么用得_Opencv 编译好的和用Cmake生成的有什么不同呢? Cmake是什么用的? 通俗些最好了,谢谢!...
2021-01-15 08:25:09你机子的某个盘里建一个新的文件夹,如我这里的完整路径是: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等
-
c make干什么用得_cmake简介
2020-12-20 05:46:19一、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中的include指令(.cmake文件/MACRO宏/function函数)
2019-10-22 10:02:34也许,你会诧异,.cmake文件是干什么的,甚至会想.cmake文件是不是cmake的正统文件,而CmakeLists.txt并不是。 但其实,CmakeLists.txt才是cmake的正统文件,而.cmake文件是一个模块文件,可以被include到CMakeLists... -
c make干什么用得_C/C++从零开始的cmake教程
2020-12-20 05:45:33C/C++从零开始的CMake教程如果你有过在linux系统上...几乎每次都是机器人般的操作,这背后其实是make(准确地说应该是GNU Make)在默默为你干了不少活。1.编译hello.c——单一源文件的编译//hello.c#include int main... -
gcc、make、cmake、qmake、make install这么多的make都干了什么
2020-08-28 15:07:08cmake是一种跨平台的编译工具,比make更为高级,使用起来要方便的多。cmake主要是编写了cmakelists.txt文件,然后用cmake命令将cmakelists.txt文件转化成make所需要的makefile文件,最后用make命令编译源码生成可... -
c make干什么用得_CMake用法详解
2020-12-20 05:46:20CMake相关一.第一次尝试结果:我将源码目录建为src,编译目录建为build.然后在src下建立main,用于放main相关的文件,再在src下建立lib1,用于放一个小库。MagicHappenslikethis:(1)main和lib1中的CMakeLists.txt,... -
gcc,make,cmake,qmake,make install 这么多的make都干了什么
2018-10-18 10:55:30CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行... -
make、makefile、cmake、kconfig是怎么做工程管理的?
2020-02-29 19:28:24要解决的问题 如何查看编译了哪些文件? 如何修改驱动文件?...makefile、cmake、kconfig都是干什么的,他们之间什么关 kconfig cmake makefile 如何查看编译了哪些文件? 如何修改驱动文件? 如何增加驱动? ... -
cmake跨平台编译nodejs的C++扩展
2020-04-06 21:49:09其实干的事情和cmake、makefile是一抹一样的,所以他能干的事情,cmake依然可以,今天就介绍一种非常方便简单的nodejs的C++扩展编写方式,因为它依赖的文件在linux下仅为node的头文件。window下的话额外需要一个node... -
cmake在Windows上的使用
2016-05-01 08:04:30cmake介绍cmake是一个构建C++代码的跨平台工具,他能够干什么呢?他能够搜索你的平台环境,然后生成平台上用于Build的文件。在Windows上安装了Visual Studio, 他能够帮你生成.sln, .vcxproj文件。如果在Linux上,... -
cmake介绍
2018-06-25 17:43:09cmake是一个构建C++代码的跨平台工具,他能够干什么呢?他能够搜索你的平台环境,然后生成平台上用于Build的文件。在Windows上安装了Visual Studio, 他能够帮你生成.sln, .vcxproj文件。如果在Linux上,能够帮你生成... -
使用cmake在Windows上编译c++
2019-03-27 17:53:21cmake是一个构建C++代码的跨平台工具,他能够干什么呢?他能够搜索你的平台环境,然后生成平台上用于Build的文件。在Windows上安装了Visual Studio, 他能够帮你生成.sln, .vcxproj文件。如果在Linux上,能够帮你生成... -
cmake简介
2016-05-10 18:11:31我们已经知道了make是干什么的,编译和构建系统的时候我们需要make来帮我们自动编译文件,你配置好依赖后,make就会自动查看编辑日期与你构建的日期对比,然后忽略掉一些不必要的编译用来加快编译速度。但是写过... -
catkin_make是干什么的以及devel下的sh文件是什么
2019-05-21 18:32:29catkin_make等效于下列命令: $ cd ~/catkin_ws $ cd src $ catkin_init_workspace $ cd .. ...$ cmake ../src -DCMAKE_INSTALL_PREFIX=../install -DCATKIN_DEVEL_PREFIX=../devel $ make //其中catk... -
node.js的C++扩展之cmake编译-跨平台版
2020-04-04 22:49:32其实干的事情和cmake、makefile是一抹一样的,所以他能干的事情,cmake依然可以,今天就介绍一种非常方便简单的nodejs的C++扩展编写方式,因为它依赖的文件在linux下仅为node的头文件。window下的话额外需要一个node... -
gcc/g++/make/cmake/makefile/cmakelists的恩恩怨怨
2019-07-30 23:21:00但是当移步linux下时,除非你使用图形界面,并且使用Qt creater这类的IDE时,才可以继续像windows下一样一键搞定所有事情,否则就不得不接触gcc/g++/make/cmake/makefile/cmakelists这些东西了,那他们是干什么的呢... -
ORB_SLAM2在Windows上的移植过程 (OpenCV 3.1+Cmake+MinGW)
2017-01-23 14:21:14项目地址,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+clion+cmake,环境配置与最简成功运行demo
2020-04-04 17:15:34文章目录为什么整这么个玩意参考博文...当然只用windows运行C++可能VS更舒服,但我思考了一下,以后的c++运行主要还是在Linux上,所以cmake的跨系统优势得用起来呀老哥。 不多说了,开干。 参考博文 Window10上CLi... -
Android Studio 3.0 Jni 开发环境配置 ndk cmake编译 多个C/C++文件添加配置
2017-11-17 11:47:02第一张图是在干什么?debug C/C++代码啊!惊不惊险刺不刺激?! 都能够直接debug了,添加文件添加函数肯定超简单的。 第二张图片呢,查看了一下apk包里面的内容可以看到所有c/c++代码都会自动被编译成为so库文件... -
cmake release和debug代码运行效果不一样_这35个小细节,让你的Java 代码运行效率翻倍!...
2020-12-30 09:46:33可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被... -
Openwrt源码树目录结构简介
2020-08-26 14:36:54开始学习openwrt的时候,看到源码树下那一堆路径,真是头大,不知道各个路径是干嘛的,想改点东西也不敢贸然去改,生怕把编译环境给搞坏了。这里简单介绍一下整个源码树下的各个路径都是做什么用的。 刚下载完的... -
Android Studio已有项目集成C++(Jni);
2020-04-06 15:19:23开发环境:Android Studio 3.5.2;...(灼哥为什么会,是因为灼哥IOT行业干了几年,设计开发产品消费类监控摄像头,传感器等) 前期准备:NDK开发包下载,Cmake下载;(Android studio可以下载) 此文章主讲... -
【入职那些事】
2015-06-18 00:25:232. 学习makefile(以前在win下开发,从来不用这个,也不知道这个是干嘛的) 3. 学习cmake 4. 学习uml建模 5. 交给我一个项目,让我做需求,概要设计,详细设计; 6. 另外再交给我一个项目,mac
-
2021 PHP租车系统 毕业设计 毕设源码 源代码使用教程
-
leetcode算法第三题
-
笔记
-
解决问题:这是解决问题的仓库-源码
-
快读函数
-
STM32F373XXDataSheet.zip
-
2013年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
2017年下半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
MySQL Router 实现高可用、负载均衡、读写分离
-
智能停车场云平台(附vue+SpringBoot前后端项目源码)
-
Markdown 标记语言
-
FyreString:FyreString是PHP的免费开源字符串实用程序库-源码
-
完美配置CentOS+Nginx+MySQL+PHP(LNMP)网站环境
-
NFS 网络文件系统
-
FTP 文件传输服务
-
path.js:39 throw new ERR_INVALID_ARG_TYPE(‘path‘, ‘string‘, path);
-
Mycat 实现 MySQL的分库分表、读写分离、主从切换
-
沿RF锁相辅助的光纤环路链路上任意中间点的精确时延感测和工作台频率分配
-
深究字符编码的奥秘,与乱码说再见
-
Mysql数据库面试直通车