CMake 学习笔记 —— 初见

project 用法:

project(projectname [CXX] [C] [Java])

指定项目名称和支持的语言,支持的语言列表可以忽略,默认支持所有语言

这个指令隐式定义了两个cmake变量:

<projectname>_BINARY_DIR

<projectname>_SOURCE_DIR

修改项目名称后,需要同时修改这些变量

同时cmake预定义了:

PROJECT_BINARY_DIR

PROJECT_SOURCE_DIR

修改项目名称后,不需要修改这些变量

set语法:

set(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])

例如:set(SRC_LIST main.c)

message语法:

message([SEND_ERROR | STATUS | FATAL_ERROR] "message to display" ...)

三种类型:

SEND_ERROR: 产生错误,生成过程被跳过

STATUS:输出前缀为--的信息

FATAL_ERROR:立即终止所有cmake过程

add_executable(hello ${SRC_LIST})

生成一个名为hello的可执行文件,相关的源文件为SRC_LIST

指令是大小写无关的,参数和变量是大小写相关的

make clean

清理建结果

外部构建:

在项目中创建build文件夹,运行cmake..

时间: 2024-12-22 02:04:05

CMake 学习笔记 —— 初见的相关文章

cmake学习笔记

CMake是干嘛的,我不详说.我只知道,我写一个程序要将多个文件组织起来并编译.从头写一个MakeFile太麻烦.CMake配置文件比MakeFile要简单很多. 从原理上讲,CMake只是在帮助我们自动生成MakeFile而己.我们编译程序还是要make一下的. 我写了一个简单的示例,内容我们不需要关心,只关心其文件结构就行了.如下: . |-- CMakeLists.txt |-- main.cpp `-- person     |-- CMakeLists.txt     |-- pers

cmake 学习笔记(三)

转自:http://blog.csdn.net/dbzhang800/article/details/6329314 接前面的 Cmake学习笔记(一) 与 Cmake学习笔记(二) 继续学习 cmake 的使用. 学习一下cmake的 finder. finder是神马东西? 当编译一个需要使用第三方库的软件时,我们需要知道: 去哪儿找头文件 .h 对比GCC的 -I 参数 去哪儿找库文件 (.so/.dll/.lib/.dylib/...) 对比GCC的 -L 参数 需要链接的库文件的名字

cmake 学习笔记(二)

在 Cmake学习笔记一 中通过一串小例子简单学习了cmake 的使用方式. 这次应该简单看看语法和常用的命令了. 简单的语法 注释 # 我是注释 命令语法 COMMAND(参数1 参数2 ...) 字符串列表 A;B;C # 分号分割或空格分隔的值 变量(字符串或字符串列表) set(Foo a b c) 设置变量 Foo command(${Foo}) 等价于 command(a b c) command("${Foo}") 等价于 command("a b c"

cmake学习笔记(五)

在cmake 学习笔记(三) 中简单学习了 find_package 的 model 模式,在cmake 学习笔记(四)中了解一个CMakeCache相关的东西.但靠这些知识还是不能看懂PySide使用CMakeLists文件,接下来继续学习find_package的 config 模式及package configure文件相关知识 find_package 的 config 模式 当CMakeLists.txt中使用find_package命令时,首先启用的是 module 模式: 按照 C

cmake 学习笔记(一)

最大的Qt4程序群(KDE4)採用cmake作为构建系统 Qt4的python绑定(pyside)採用了cmake作为构建系统 开源的图像处理库 opencv 採用cmake 作为构建系统 ... 看来不学习一下cmake是不行了,一点一点来吧,找个最简单的C程序,慢慢复杂化,试试看: 样例一 单个源文件 main.c 样例二 ==>分解成多个 main.c hello.h hello.c 样例三 ==>先生成一个静态库,链接该库 样例四 ==>将源文件放置到不同的文件夹 样例五 ==&

cmake 学习笔记(四)

接前面的一二三,学习一下 CMakeCache.txt 相关的东西. CMakeCache.txt 可以将其想象成一个配置文件(在Unix环境下,我们可以认为它等价于传递给configure的参数). CMakeLists.txt 中通过 set(... CACHE ...) 设置的变量 CMakeLists.txt 中的 option() 提供的选项 CMakeLists.txt 中find_package() 等find命令引入变量 命令行 cmake . -D <var>:<typ

CMake学习笔记一

#设置cmake最低版本号 CMAKE_MINIMUM_REQUIRED(VERSION 3.4.0) #设置工程名称 PROJECT(HelloWorld) #设置工程包含当前目录,非必须 SET(CMAKE_INCLUDE_CURRENT_DIR ON) # 设置自动生成moc文件,AUTOMOC打开可以省去QT5_WRAP_CPP命令 SET(CMAKE_AUTOMOC ON) # 设置自动生成ui.h文件,AUTOUIC打开可以省去QT5_WRAP_UI命令 SET(CMAKE_AUTO

FFmepg学习笔记——初见

获取视频信息 ffmpeg -i file.mp4 会得到一个警告

CMake入门以及学习笔记

使用cef3替代chromium内核开发产品过程中,第一次接触到系统构建,使用了最常见的CMake.CMake虽然在构建系统中用的比较多,但是使用到的程序员还是很少的.现在在国内能找到的相关资料和博客比较多,本人在学习中也看了很多人的博客,比如 CMake学习(一)  , CMake语法之流程控制 等.再次感谢这些作者的分享.下边提供一些系统学习的资料. CMake的官网地址:http://www.cmake.org/ CMake主要的文档<learning_cmake> <CMake