关于cmake:CMake基础知识

10次阅读

共计 1063 个字符,预计需要花费 3 分钟才能阅读完成。

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    #执行可执行文件

正文完
 0