cmake是编译c、c++的工具。将主要的命令作以下记录,一来加深印象,二来备忘。
================================================================
1、#是注释符号
2、SET(变量A 变量B)
例如
SET(SRC_LIST a.c b.c ab.c)
意思是将a.c b.c ab.c三个文件作为一个list赋值给SRC_LIST,也可以
set(SRC a.c )
意思是将a.c赋值给SRC,可以通过${SRC}来得到a.c。命令不分大小写。
3、判断
if(1)
SET(SRC a.c )
elseif(1)
SET(SRC b.c )
endif()
4、循环
SET(mylist “a” “b” c “d”)
foreach(f ${mylist})
message(“1+1=2”)
endforeach()
WHILE(1)
message(${mylist})
ENDWHILE()
5、project(hello)
指定项目名称
6、include_directories(directory1 directory2 …)
指定头文件的搜索路径,不执行
7、link_directories(directory1 directory2 …)
指定库文件的搜索路径,不执行
8、add_subdirectory()
包含子目录
9、add_executable(可执行文件名 生成该可执行文件的源文件)
执行编译
add_executable(aaa ${mylist })
生成名称为aaa的可执行文件
10、target_link_libraries(f1 f2)
执行链接
TARGET_LINK_LIBRARIES(aaa bbb)
aaa连接libbbb.so库
11、add_library(directory1 directory2 …)
编译成库文件
ADD_LIBRARY(aaa SHARED ${mylist})
生成名称为aaa的动态链接库
ADD_LIBRARY(aaa STATIC ${mylist})
生成名称为aaa的静态链接库
12、aux_source_directory(dir variable)
将dir中的所有源文件(不包括头文件)保存到variable中
13、MESSAGE()
打印信息
14、add_definitions()
增加编译参数
15、内部变量
CMAKE_C_COMPILER:指定C编译器
CMAKE_CXX_COMPILER:
EXECUTABLE_OUTPUT_PATH:可执行文件的存放路径
LIBRARY_OUTPUT_PATH:库文件路径
CMAKE_BUILD_TYPE::build 类型(Debug, Release, …),CMAKE_BUILD_TYPE=Debug