cmake gui安装教程_cmake安装与使用
CMake(cross platform make)是一个开源的跨平台工具系列,旨在构建,测试和打包软件。
使用指定名为CMakeLists.txt的配置文件可以控制软件的构建、测试和打包等流程。
通过编写平台无关的CMakeLists.txt文件和需要简单的配置,CMake就能生成对应目标平台的构建文件
1.安装
(1)Linux
所有主流的Linux发行版的源中都包含有cmake的安装包,直接从源中添加即可
(2)windows
选择 cmake-3.15.0-rc3-win64-x64.zip
解压
设置环境变量 path,eg:E:\baby\software\cmake-3.15.0-rc3-win64-x64\bin
测试,win+R,cmd,执行命令 cmake --version
2.cmake使用
准备:
安装的是VS2015
设置VS2015的环境变量,以便cmake能找到编译器(设置方法 查看)
准备需要的文件和目录
目录 E:\C\cmake
HelloWorld.cpp
#include
using namespacestd;intmain() {
cout<
system("pause");return 0;
}
CMakeLists.txt
cmake_minimum_required (VERSION 2.6)
project (HelloWorld)
add_executable (HelloWorld HelloWorld.cpp)
说明:
第1行,cmake需要的最低版本
第2行,创建了一个名为 HelloWorld 工程,对应生成一个 HelloWorld.sln 。project函数表示创建一个工程
第3行,添加一个名为 HelloWorld 的可执行程序项目,它的源代码为 HelloWorld.cpp
add_executable( [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] source1 [source2 ...])
(1)cmake命令
A.生成编译工程文件
cmake [] ( | )
打开cmd,进入E:\C\cmake目录,运行命令
cmake .
输出
-- Building for: Visual Studio 14 2015
-- The C compiler identification is MSVC 19.0.24215.1
-- The CXX compiler identification is MSVC 19.0.24215.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio14.0/VC/bin/cl.exe-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio14.0/VC/bin/cl.exe --works--Detecting C compiler ABI info-- Detecting C compiler ABI info -done--Detecting C compile features-- Detecting C compile features -done-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studi
o14.0/VC/bin/cl.exe-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studi
o14.0/VC/bin/cl.exe --works--Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info -done--Detecting CXX compile features-- Detecting CXX compile features -done--Configuring done-- Generating done
生成文件
B.编译工程
cmake --build
debug模式(默认)
cmake --build .
输出
Microsoft (R) 生成引擎版本 14.0.25420.1版权所有(C) Microsoft Corporation。保留所有权利。
Checking Build System
Building Custom Rule E:/C/cmake/CMakeLists.txt
HelloWorld.cpp
HelloWorld.vcxproj->E:\C\cmake\Debug\HelloWorld.exe
HelloWorld.vcxproj-> E:/C/cmake/Debug/HelloWorld.pdb (Full PDB)
Building Custom Rule E:/C/cmake/CMakeLists.txt
Release模式
cmake --build . -- /p:Configuration=Release
输出
Microsoft (R) 生成引擎版本 14.0.25420.1版权所有(C) Microsoft Corporation。保留所有权利。
Checking Build System
Building Custom Rule E:/C/cmake/CMakeLists.txt
HelloWorld.cpp
HelloWorld.vcxproj->E:\C\cmake\Release\HelloWorld.exe
Building Custom Rule E:/C/cmake/CMakeLists.txt
进入到带有exe的目录,执行HelloWorld.exe
(2)cmake-gui使用
删掉上一步生成的文件和目录,保留下面的
A .打开cmake-gui程序,配置目录
B.点Configure开始执行配置
配置完成后,build目录为
C.点击 Generate,开始生成 VS 项目
D.编译
d1)打开VS
点击cmake-gui中下放的 Open Project 按钮或者直接双击 build 目录下的 HelloWorld.sln,即可在VS中打开工程
cmake生的HelloWorld工程共有3个项目
说明:
ALL_BUILD
该目标会导致工程中所有项目被构建,类似 Visual Studio 的 Build All 或者 make 的 make all命令
HelloWorld
项目本身,就是在CMakeLists.txt文件中配置的project(HelloWorld)
ZERO_CHECK
该项目会检查生成工程的 CMake 配置文件( CMakeLists.txt )是否更新。
如更新,将运行 CMake 重新生成工程文件。
如果确信 CMakeLists.txt 不会被更新,或者希望手工运行 CMake 重新生成工程文件,可以在 CMakeLists.txt 配置文件中添加 set(CMAKE_SUPPRESS_REGENERATION FALSE) 命令, ZERO_CHECK 目标将不会生成
单独生成项目HelloWorld,在build下的相应目录看到可执行文件HelloWorld.exe已经生成。
双击HelloWorld.exe后,可以看到程序输出
d2)打开VS命令行
在开始菜单,打开VS2015 x86 本机工具命令提示符
进入到build目录下 ,执行 msbuild HelloWorld.sln,输出
Microsoft (R) 生成引擎版本 14.0.25420.1版权所有(C) Microsoft Corporation。保留所有权利。
在此解决方案中一次生成一个项目。若要启用并行生成,请添加“/m”开关。
生成启动时间为2019/7/9 13:03:53。
节点1上的项目“E:\C\cmake\build\HelloWorld.sln”(默认目标)。
ValidateSolutionConfiguration:
正在生成解决方案配置“Debug|Win32”。
ValidateProjects:
在解决方案配置“Debug|Win32”中未选定生成项目“ALL_BUILD”。
项目“E:\C\cmake\build\HelloWorld.sln”(1)正在节点 1上生成“E:\C\cmake\build\He
lloWorld.vc
xproj.metaproj”(2) (默认目标)。
项目“E:\C\cmake\build\HelloWorld.vcxproj.metaproj”(2)正在节点 1上生成“E:\C\c
make\build\
ZERO_CHECK.vcxproj”(3) (默认目标)。
PrepareForBuild:
正在创建目录“E:\C\cmake\build\Debug\”。
InitializeBuildStatus:
正在创建“Win32\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild”,因为已指
定“AlwaysCr
eate”。
CustomBuild:
所有输出均为最新。
FinalizeBuildStatus:
正在删除文件“Win32\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild”。
正在对“Win32\Debug\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate”执行
Touch
任务。
已完成生成项目“E:\C\cmake\build\ZERO_CHECK.vcxproj”(默认目标)的操作。
项目“E:\C\cmake\build\HelloWorld.vcxproj.metaproj”(2)正在节点 1上生成“E:\C\c
make\build\
HelloWorld.vcxproj”(4) (默认目标)。
PrepareForBuild:
正在创建目录“HelloWorld.dir\Debug\”。
正在创建目录“HelloWorld.dir\Debug\HelloWorld.tlog\”。
InitializeBuildStatus:
正在创建“HelloWorld.dir\Debug\HelloWorld.tlog\unsuccessfulbuild”,因为已指定
“AlwaysCrea
te”。
CustomBuild:
Building Custom Rule E:/C/cmake/CMakeLists.txt
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio14.0\VC\bin\CL.exe /c /Zi /nol
ogo/W1 /WX- /Od /Ob0 /Oy- /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS/Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline/GR /Fo"HelloWorld.dir\Debug\\" /Fd"HelloWorld.dir\Debug\vc140.pdb" /Gd/TP /analyze- /errorReport:queue E:\C\cmake\HelloWorld.cpp
HelloWorld.cpp
Link:
C:\Program Files (x86)\Microsoft Visual Studio14.0\VC\bin\link.exe /ERRORREP
ORT:QUEUE/OUT:"E:\C\cmake\build\Debug\HelloWorld.exe" /INCREMENTAL /NOLOGO k
ernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.
lib uuid.lib comdlg32.lib advapi32.lib/MANIFEST /MANIFESTUAC:"level='asInvok
er'uiAccess='false'" /manifest:embed /DEBUG /PDB:"E:/C/cmake/build/Debug/Hel
loWorld.pdb"/SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"E:/C/cmake/build/Debug/HelloWorld.lib"/MACHINE:X86 /SAFESEH /machine:X86 HelloW
orld.dir\Debug\HelloWorld.obj
HelloWorld.vcxproj->E:\C\cmake\build\Debug\HelloWorld.exe
HelloWorld.vcxproj-> E:/C/cmake/build/Debug/HelloWorld.pdb (Full PDB)
FinalizeBuildStatus:
正在删除文件“HelloWorld.dir\Debug\HelloWorld.tlog\unsuccessfulbuild”。
正在对“HelloWorld.dir\Debug\HelloWorld.tlog\HelloWorld.lastbuildstate”执行 T
ouch 任
务。
已完成生成项目“E:\C\cmake\build\HelloWorld.vcxproj”(默认目标)的操作。
已完成生成项目“E:\C\cmake\build\HelloWorld.vcxproj.metaproj”(默认目标)的操作。
已完成生成项目“E:\C\cmake\build\HelloWorld.sln”(默认目标)的操作。
已成功生成。0个警告0个错误
已用时间00:00:01.92
View Code
可以在Debug中看到生成的HelloWorld.exe文件,双击可运行
(3) 使用cmake命令与nmake生成器
删掉上一步生成的文件和目录,保留下面的
A.使用cmake命令行与nmake生成器构建Makefile
打开VS2015 x86 本机工具命令提示符
进入cmake目录,执行
cmake -G "NMake Makefiles" .
B.编译,执行命令 nmake
在cmake目录生成了HelloWorld.exe程序
cmake gui安装教程_cmake安装与使用相关推荐
- cmake gui安装教程_CMake安装使用教程
CMake是一个比make更高级的编译配置工具,它可以根据不同平台.不同的编译器,生成相应的Makefile或者vcproj项目. 通过编写CMakeLists.txt,可以控制生成的Makefile ...
- mysql5 7安装教程_MySQL57安装教程
MySQL57安装教程... --------------------------- 首先需要下载MySQL57安装包: --------------------------------------- ...
- 解决M1芯片无法安装AE闪退问题,AEcc2021中文直装版兼容M1芯片安装教程 M1安装方案
Adobe After Effects 2021 mac M1版上线啦!ae2021 mac中文版是ae Mac的最新版本,全新优化专为Mac用户设计,让不可能变为可能.ae 2021 mac破解版下 ...
- JDK安装 + MyEclipse安装:JDK安装教程+MyEclipse安装教程(包含视频教程)
jdk安装 + myeclipse安装:jdk安装教程+myeclipse安装教程: 1.JDK简介:java开发环境,包含JRE(java运行环境)+ 和java开发工具包. 2.MyEclipse ...
- Android Studio安装教程及安装中出现问题的解决办法
Android Studio安装教程及安装中出现问题的解决办法 Android Studio安装教程: 安装网址: AndroidDevtools下载:https://developer.androi ...
- dlib安装教程,安装出错的点进来
dlib 库是一个用来人脸关键点检测的 python 库,但因为其是 C++ 编写(或需要 C++编译?),使得我们在安装时遇到各种各样问题.笔者在不同电脑上安装遇到的问题都不同,但最后经过搜索,都解 ...
- python的安装教程-python安装教程 Pycharm安装详细教程
python安装教程和Pycharm安装详细教程,分享给大家. 首先我们来安装python 1.首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downlo ...
- python要不要装pycharm-python安装教程 Pycharm安装详细教程
这篇文章主要介绍了python的安装教程,和Pycharm的安装详细教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 python安装教程和Pycharm安装详细教程,分享给大家. 首先我们来安 ...
- 2020mysql安装教程_2020MySQL安装图文教程
MySQL安装图文教程(Windows10) 1.MySQL下载 可以去MySQL官网下载,或者在我提供的百度云链接下载.官网下载网速较慢,我从官网下载了将近四个小时,然后把下载好的放在了百度网盘,需 ...
最新文章
- React——Flow代码静态检查
- find 命令_linux中find命令的使用
- python xpath语法-Python xpath表达式如何实现数据处理
- Properties 类的使用
- 相机标定(2)opencv2实现
- SQL Server IF Exists 判断数据库对象是否存在的用法
- format函数_Python学习教程:Python3之字符串格式化format函数详解(上)
- LINUX下载编译libfaac
- 通过apache对页面进行压缩和页面缓存来提升性能
- Windows Server 2003 SP2(32位) 中文版 下载地址 光盘整合方法
- 机器人学DH参数及利用matlab符号运算推导
- VBScript 程序员参考手册 读书笔记08-
- kali安装最新版nessus
- Windows下VS2015编译caffe(CPU ONLY)
- 通过jad/mc/redefine命令,在docker容器中实现动态更新代码的功能:
- burg算法matlab求功率谱,基于AR模型的Burg算法功率谱估计.doc
- c#笔记--程序集(Assembly)、模块(Module)、类型(class)、命名空间、反射
- 真正牛逼的人,都是极简主义者!!
- 西储大学轴承数据小波变换
- 肠道菌群检测粪便样本的采集保存方法
热门文章
- HTML5,CSS3,JS绘制饼图
- [导入]如何动态生成table(javascript)
- JavaScript Document对象DOM
- 利用jsonp、iframe和location.hash解决跨域问题
- 有关文档碎片(document fragment)的用法
- margin-top失效的解决办法
- Java多线程(学习总结,持续更新)
- java框架ssh实验报告_基于SSH的实验报告提交系统
- Dart 10-Day
- 如何监测服务器网络稳定性centos,centos下网络监测工具nethogs