“慢慢”了解CMake
我就写了这个,一方面是自学,而已个是自己慢慢记录。
翻译:CMake官网https://cmake.org/cmake/help/v3.20/
CMake是一个管理源代码的构建工具 。Cmake被广泛的用到C/C++语言上,当然也是可以构建其他语言的。
- cmake 构建一个简单的应用,其中是使用
cmake -G “MinGW Makefils”
命令通过CMakefiles.txt生成MingW编译器的makefile文件,然后使用mingw32-make
命令构建应用
现在有一个项目需要两个外部的头文件依赖,一个外部的库文件。
当我们需要一个头文件,而该头文件没有包含在系统的搜索路径中的时候。我们就需要首先需要定位cmake 的头文件的查找目录:
include_directory()
该命令将指定目录添加到编译器用于搜索包含头文件的目录路径中去。即相当于gcc编译时的"-I"
命令。当目标头文件不在编译器自动搜索的路径中时,可以使用该命令额外包含对应的头文件目录。
这条指令可以用来向工程添加多个特定的头文件搜索路径,路径之间用空格分割,如果路径
中包含了空格,可以使用双引号将它括起来,默认的行为是追加到当前的头文件搜索路径的
后面
用法
include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])
AFTER|BEFORE:用于选择将指定目录放在当前的目录列表的前面或者后面,默认情况下是AFTER。可以通过变量CMAKE_INCLUDE_DIRECTORIES_BEFORE来查询或修改。
SYSTEM:如果设置,说明有些指定的目录可能在系统自动包含的目录中,如:/usr/include。
dir1[dir2 …]:指定的头文件目录
mpi程序的CMakeLists.txt
cmake_minimum_required(VERSION 3.0.0)
project(test VERSION 0.1.0)
# add search directory
include_directories("D:/Program Files/Microsoft MPI/MPI/Include/")
link_directories("D:/Program Files/Microsoft MPI/MPI/Lib/x64/")
# create exe
add_executable(test main.cpp)
# add library
target_link_libraries(test "msmpi.lib")