目录
① cmake_minimum_required-指定CMake的最低版本要求:
④ include_directories-指定特定头文件的搜索路径:
⑤ link_directories-指定特定库文件的搜索路径:
⑨ target_link_libraries-指定链接的共享库:
⑪ aux_source_directory-将目录下所有源文件列表存储在变量中:
④ CMAKE_BINARY_DIR、PROJECT_BINARY_DIR和_BINARY_DIR
⑤ CMAKE_SOURCE_DIR、PROJECT_SOURCE_DIR和_SOURCE_DIR
- # 指定CMake的最低版本要求为2.8.3
- cmake_minimum_required(VERSION 2.8.3)
- # 定义项目名称为Test
- project(Test)
- # 定义SRC变量,其值为Test1.cpp
- set(SRC Test1.cpp)
- # 将/usr/include/myincludefolder 和 ./include 添加到头文件搜索路径
- include_directories(/usr/include/myincludefolder ./include)
- # 将/usr/lib/mylibfolder 和 ./lib 添加到库文件搜索路径
- link_directories(/usr/lib/mylibfolder ./lib)
注:动态使用SHARED,静态使用 STATIC
- # 通过变量 SRC 生成 libhello.so 共享库
- add_library(hello SHARED ${SRC})
- # 添加编译参数 -Wall -std=c++11 -O2
- add_compile_options(-Wall -std=c++11 -O2)
- # 编译main.cpp生成可执行文件main
- add_executable(main main.cpp)
- # 将hello动态库文件链接到可执行文件main
- target_link_libraries(main hello)
- # 添加src子目录,src中需有一个CMakeLists.txt
- add_subdirectory(src)
- # 定义SRC变量,其值为当前目录下所有的源代码文件
- aux_source_directory(. SRC)
- # 编译SRC变量所代表的源代码文件,生成main可执行文件
- add_executable(main ${SRC})
表示:gcc编译选项
表示:g++编译选项
表示:编译类型(Debug、Release)
表示:三个变量指代内容一致,如果是in source build则表示工程顶层目录,如果是out-of-source编译则表示工程编译发生的目录。
表示:表示工程顶层目录
表示:指定C编译器
表示:指定C++编译器
表示:可执行文件的输出路径
表示:库文件的输出路径
① 编写CMakeLists.txt
② 执行 cmake PATH 命令生成Makefile
注:PATH为顶层CMakeLists.txt所在的目录
③ 执行make命令进行编译