CMakeLists.txt
我们知道,我们写一段源代码,想要把它编译成二进制文件,就需要告诉编译器源码文件路径、依赖库所在路径;采用的编译器版本;release还是debug模式编译;是否支持c++11;生成的可执行文件/库文件路径和名称、版本号;指定安装路径等等。
CMakeLists.txt
就是用来干这件事的。
指定基本信息
#1.版本要求
cmake_minimum_required(VERSION 3.0.2)
#2.项目名
project(directory_test VERSION 1.0)
#3.编译方式
# CMake中有一个变量CMAKE_BUILD_TYPE,可以取值枚举入下:
# Debug|Release|RelWithDebInfo|MinSizeRel
set(CMAKE_BUILD_TYPE "Debug")
#4.指定编译器
set(CMAKE_C_COMPILER "/usr/local/gcc")
set(CMAKE_CXX_COMPILER "/usr/local/g++")
#5.添加对c++11的支持
add_compile_options(-std=c++11)
#OR set(CMAKE_CXX_FLAGS "-std=c++11")
#6.指定生成的可执行文件路径
set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#7.指定生成的库路径
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#8.指定安装路径
install(TARGETS MathFunctions DESTINATION path/lib)#头文件
install(FILES MathFunctions.h DESTINATION path/include)#库
指定头文件搜索路径
#指定源码文件的头文件和库文件的头文件的搜索路径,相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量
include_directories(./include/srcHeadPath)
指定源码文件
# 把所有.cpp源码文件赋值给SOURCES
set(SOURCES src/a.cpp src/b.cpp)
# 把src目录下的所有.cpp文件赋值给SOURCES
aux_source_dir