Seija
首页
Travellings
登录
注册
首页
文章
CMake 速览
### 概述 CMake算是一个生成编译配置文件的工具,主要用于包管理和编译链接比较落后的语言。包括C/C++,和早些时候的Java等。在C/C++项目里其可以生成跨平台的项目文件,例如Windows会生成MSVC工程文件,在苹果上可以生成XCode项目文件,在Linux上可以生成Makefile。这里主要列出C++使用的方法。 ### 最简单的例子 创建一个`main.c`文件 ```c //main.c #include
int main() { printf(“Hello World from t1 Main!\n”); return 0; } ``` 在同目录创建一个`CMakeLists.txt`文件 ```cmake PROJECT (HELLO) SET(SRC_LIST main.c) MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR}) MESSAGE(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR}) ADD_EXECUTABLE(hello SRC_LIST) ``` 在当前目录下运行`cmake .`命令 然后他就会生成`Makefile`文件 他就会在当前目录生成`hello`这个可执行文件 然后在当前目录输入 `make`命令 `make VERBOSE=1` 在make命令后面加上`VERBOSE=1`的参数可以看到构建的详细过程。 #### CMakeLists.txt解释 我们可以发现,CMake的语法基本都是由有副作用的函数组成的,参数用空格隔开。基本上来说我们只要熟悉了常用函数的意思,那么基本就能使用CMake了。这几行代码的意思依次是 1. 设置项目名称为hello 并且默认定义两个全局变量`项目名称_BINARY_DIR`,和`项目名称_SOURCE_DIR` 2. 设置SRC_LIST变量为main.c 3. 输出一行log `This is BINARY dir " ${HELLO_BINARY_DIR}` `HELLO_BINARY_DIR`为预定义的变量 3. 输出一行log `This is SOURCE dir " ${HELLO_SOURCE_DIR}` `HELLO_SOURCE_DIR`为预定义的变量 ### CMake语法规则 从上面可以发现其是一个实现非常简陋的类c语法。 1. 变量:使用`${}`方式取值,但是在if控制语句中是直接使用变量名,因为if要的是变量引用而. 2. 函数 `函数名称 (参数1 参数2)` 参数使用空格隔开。 3. 函数名是大小写无关的,参数和变量是大小写相关的。 **PROJECT函数** PROJECT(projectname [CXX] [C] [Java]) 指定工程名称。 **SET 函数** **MESSAG 函数**
登录
登录
注册
最热文章
引擎中Template DSL的设计思考总结
10-19
ReaderT 设计模式
04-23
非主流引擎开发不出来 (n+1) : purescript侧结构设计
04-04
FRP系统的设计
03-17
非主流引擎开发不出来 (1) : 轻骨架
02-11
非主流引擎开发不出来 (0) : 引擎定位
12-09
Rust的ECS库specs
11-20
Haskell类型类高级扩展详细说明
05-31
CMake 速览
05-29
尼采导读:超人与永恒轮回
02-24
为什么elm的结构并不是最合理的?
02-20
React速览
02-20
尼采命运之爱
02-18
AspNetCore 速览
02-17
由Haskell和面向对象引出的关于抽象的思考
12-26
二进制文件压缩工具upx
12-24
Reflex介绍
12-17
Web的前端渲染和WebApi
12-16
前端FRP框架深度踩坑
12-16
Yesod - RESTful (11)
12-16
链接
github
gitee