CMake 在工程管理中的使用 Window/MacOS
是什么
CMake 是一个跨平台的编译工具,可以用简单的语句来描述所有平台的编译过程。
编译工具
Visual Studio 自动解析编译 cmakelists.txt
编译与链接
编译:将当前的C++/C 代码通过编译器,编译位目标代码的过程。
链接:将多个编译好的目标代码,相互进行链接,形成一个完整的可执行程序。
CMake工具就可以完成编译与链接的配置工作,让程序猿可以跨平台编译链接程序
动态库与静态库
静态链接库:包含代码与数据的文件,可在程序 编译期间 链接入程序
动态链接库:包含代码与数据的文件,可在程序执行期间被动态加载
动态链接库有利于 模块/插件 的升级
CMake 文件结构
CMakeList.txt 是整个CMake 工程描述文件,基本内容如下:
#需求的最低CMake 程序版本
cmake_minimum_required(VERSION 3.5)
#本工程的名字
project(CMakeDemo)
#本工程支持的C++ 版本
set(CMAKE_CXX_STANDARD 11)
#本工程主程序的文件以及程序输出的名称
add_executable(CMakeDemo "main.cpp")
main.cpp
#include <iostream>
int main(){
std::cout<<"Hello World "<<std::endl;
return 0;
}
其他设置
#需求的最低CMake 程序版本
cmake_minimum_required(VERSION 3.5)
#本工程的名字
project(CMakeDemo)
#本工程支持的C++ 版本
set(CMAKE_CXX_STANDARD 11)
#搜索所有的Cpp 加入到SRCS变量中 SRCS source的缩写
aux_source_directory(. SRCS)
#本工程主程序的文件以及程序输出的名称
add_executable(CMakeDemo ${SRCS})
MacOS + Xcode 下的使用
创建编译生成的目录文件。程序文件结构如下:
Project
build
CMakeLists.txt
main.cpp
打开终端 进入build文件夹 执行下面指令:
cmake .. -G "Xcode"
等待执行完成,则会输出如下内容:
build % cmake .. -G "Xcode"
-- The C compiler identification is AppleClang 10.0.1.10010046
-- The CXX compiler identification is AppleClang 10.0.1.10010046
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (10.2s)
-- Generating done (0.0s)
-- Build files have been written to: /Project/OpenGL/CMakeDemo/build
进入到build目录,则可见生成的Xcode 工程项目
Window + VS 下的使用
直接使用VS —>文件打开----->Cmake 选择CMakeList.txt 文件则会自动的解析 生成工程