什么是CMake?
没有使用CMake和使用CMake构建的区别?
CMake的基本语法
语法格式:
指令(参数1 参数2...)
赋值操作
如 把hello.cpp 赋值给变量HELLO
set(HELLO hello.cpp)
取变量的值:
${HELLO}
但在if控制语句中是直接使用变量名。
if(HELLO) 正确
if($(HELLO)) 错误
指令是大小写无关的,参数和变量是大小写相关的。
add_executable(hello main.cpp ${HELLO})
等同于:
ADD_EXECUTABLE(hello main.cpp hello.cpp)
重要指令和CMake常用变量
指定CMake的最小版本要求
cmake_minimum_required(VERSION 2.8.3)
project: 定义工程名称,并可指定工程支持的语言
set 显式的定义变量
想要使用 sayhello.cpp hello.cpp直接用SRC变量替代即可。
include_directories 向工程添加多个特定的头文件搜索路径
link_directories 向工程添加多个特定的库文件搜索路径
add_library 生成库文件
在c++中生成库文件:
# 汇编,生成swap.o文件
g++ swap.cpp -c -I../include
# 生成静态库libswap.a
ar rs libswap.a swap.o