CMake 简单入门

本文介绍了CMake作为跨平台构建工具的基本概念,包括CMakeLists.txt的使用、变量与变量操作、预定义变量、控制语句、文件操作、编译目标生成及选项设定。通过对CMake的学习,可以更方便地管理C++项目的构建过程。
C++ 虽然是一个跨平台的语言,但由于第个平台的构建工具均有不同,因此,其跨平台工作难度也就大了许多。于是,许多跨平台的构建工具也随之出现。比较著名的有:


1. qmake
2. cmake
3. premake


当然,还有boost弄的那一堆东西,就不提了。


其中,premake是基于lua语言的,从理念上看,我认为它比较优秀。但是,现在许多C++开源项目都是基于cmake的,同时,Biicode也是基于cmake的,因此,我决定学习它。


# cmake
我们可以将cmake看作一门指令式语言。它有变量,有控制语句。cmake的工作对象是CMakeLists.txt,我们可以将它看作cmake这门语言的源代码。一个文件中可以引用另外一个文件。


考虑到cmake文件实际上是描述了一个工程,因此,它在某种意义上更像是一门说明式语言,我们最终的目标是定义一个编译目标,为了定义这个目标,我们需要确定它所使用的源文件,以及编译时使用的选项,以及连接的库,考虑到工程的复杂性,它还可能包含子工程。它的主要部分:


1. 工程名:project("project-name")
2. 版本说明:cmake_minimum_required(VERSION 2.8)
3. 编译目标生成:add_executable/add_library
4. 编译目标设置:
    + 全局设置:include_directories/add_definitions
    + 目标设置:target_compile_definitions/target_compile_options/target_link_libraries/target_include_directories/target_include_directories
    
对于目标设置,通常我们还需要指定PRIVATE及PUBLIC,来确定它是否是可传递的,即
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值