CMake是一个跨平台编译工具,能够用简略的语句来形容所有平台的编译过程。CMake的目标就是输入各种各样可移植的规范的建构档(如Unix的Makefile或Windows Visual C++的projects/workspaces),而后再依个别的建构形式应用。

1. 在 linux 平台下应用CMake生成Makefile并编译的流程

  • 编写CMake配置文件CMakeLists.txt。
  • 执行命令cmake PATH或者ccmake PATH生成Makefile。其中,PATH是CMakeLists.txt所在的目录。
  • 应用make命令进行编译。

2. CMake我的项目的文件目录结

├── CMakeLists.txt├── include│          └── Hello.h├── src│         ├── Hello.cpp│         └── main.cpp└── build

3. CMake根本脚本

# 指明对cmake的最低(高)版本的要求cmake_minimum_required(VERSION 2.6) # 创立我的项目project (ProjectName)# 查找依赖包,如果找到PACK库就把头文件(应该能够这么说吧)门路和库文件门路赋值给上面两个语句中的 ${PACK_INCLUDE_DIRS}、${PACK_LIBRARIES}。find_package(PACK REQUIRED)include_directorise(${PACK_INCLUDE_DIRS})link_directorise(${PACK_LIBARAY_DIRS})add_definition(${PACK_definition})# 创立源文件变量SOURCES,并在可执行程序中增加源文件set(SOURCES src/Hello.cpp src/main.cpp) add_executable(ProjectName ${SOURCES})# 设置要蕴含的头文件的目录、设置要链接的库target_include_directories(ProjectName PRIVATE ${PROJECT_SOURCE_DIR}/include)target_link_libaries(ProjectName ${PACK_LIBARIES})# 指定在装置时运行的规定install(TARGET ProjectName RUNTIME DESTINATION bin)

4. 生成可执行文件

cd build         #内部编译cmake ..         #生成Makefile文件make             #生成可执行文件./ProjectName    #执行可执行文件