Cmake编写
cmakelist :
- 每个目录可以放一个cmakelist
- 所有目录可以放一个cmakelist
cmake区分指令
cmake_minmun_required
- 指定最小的cmake版本,如果版本最小
project(test)
- 设置当前项目的名称
cmake_build_type
- debug调式模式
- release发布信息
- relwithdebinfo 类似release,但是会发布调试信息
- minsizerel 特殊的release
cmake_cxx_flags
- 编译cxx的设置模式
include_directories
- 包含头文件
set()
用变量代替文件
- set(src main.cpp)
add_executable(hello main.cpp)
- 用指定的源文件为工程添加可执行文件
- 工程会生成一个hello可执行文件
add_library(libname STATIC/SHARED sources)
- 指定源文件生成连接库文件。STATIC为静态链接库,SHARED 共享链接库
target_link_libraries(myproject lib.a)
- 为库或者二进制文件添加库链接,add_executable
add_subdirectory(source_dir)
- 向当前的工程添加存放源文件的子目录、多层cmakelist使用
aux_source_directory(dir varname)
- 在目录下查找所有源文件
message(mode “message text”)
一些规则
- PROJECT_NAME:项目名称,要与project(name)一致
- PROJECT_SOURCE_DIR:project()指令的cmakelist所在文件夹
- EXECUTABLE_OUTPUT_PATH:可执行文件输出绝对路径
- LIBRARY_OUTPUT_PATH:库文件输出路径
- CMAKE_BINARY_DIR:build文件夹所在的绝对路径
- CMAKE_SOURCE_DIR:源文件所在的绝对路径
find_package(OpenCV 3 REQUIRED)
找不到路径使用set(xxx_DIR /home/chik…)
list 列表操作(读、搜索、修改、排序)