Files
rikako-note/cmake/cmake.md
2022-04-10 00:43:15 +08:00

1.8 KiB
Raw Permalink Blame History

CMake教程

  • CMake的跨平台特性

    • 由于在源文件规模较大时每次编译都重复输入gcc命令并指定源文件是很繁重的工作为了解决该问题通过 makefile文件指定每次编译过程的流程和clean等环节的命令可以只需输入make命令就完成一系列构建的工作。

    但是多个平台下make工具的格式并不都相同如windows平台下的nmake、QT平台下的qmake等等为了避免在不同平台重复编写不同格式的qmake可以通过编写CMakeLists.txt文件并根据不同平台的需要将其转化为对应平台下的make格式。

  • CMake中的指令

    • cmake_minimum_version(VERSION 版本号):
      当前项目需要的最小项目版本

    • project(项目名)
      当前项目的名称

    • add_executable(可执行文件 source1 source2...):
      生成的可执行文件名称和其依赖的源文件

    • set(CMAKE_CXX_STANDARD 11/14):
      将c++标准设置为11或者14

    • set(CMAKE_CXX_STANDARD_REQUIRED On/Off):
      如果CMAKE_CXX_STANDARD_REQUIRED设置为True则必须使用该c++版本若设置为Off可以在不支持该版本的情况下选用其他版本

    • add_library(库名称 [STATIC|SHARED] source1 [source2...]):
      用指定的源文件构建动态/静态库当未指定STATIC/SHARED时默认会生成静态库.a文件指定static后生成.so动态库文件

    • target_include_directories(可执行文件名 PUBLIC 头文件目录...):
      添加头文件

    • target_link_libraries(可执行文件名 PUBLIC 库名称...):
      添加库