cMake进阶之使用vcpkg管理库

cMake进阶之使用vcpkg管理库

持续创造,加快成长!这是我参加「日新方案 10 月更文挑战」的第16天,点击检查活动详情

一、CMakeLists.txt 常用指令总结

1. command (args …)

  • command:指令的名字
  • args: 参数列表。多个参数运用空格隔开。

2. cmake_minimum_required

  • 含义

    设置项目要求的CMake最低版本号

  • 示例

    cmake_minimum_required(VERSION 2.8)
    

3. add_executable

  • 含义 运用指定的源文件给项目添加一个可执行文件
  • 格式
    add_executable(<name> [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] source1 [source2 ...])
    
  • 参数介绍:
    • name:该指令调用列出的源文件来构建的可执行方针。 对应于逻辑方针名称,在项目中必须是大局唯一的。构建的可执行文件的实际文件名是基于本机渠道的约好。
    • WIN32:假如给出WIN32,则在创立的方针上设置特点WIN32_EXECUTABLE。
    • MACOSX_BUNDLE:假如给定MACOSX_BUNDLE,将在创立的方针上设置相应的特点。
    • EXCLUDE_FROM_ALL:假如给定EXCLUDE_FROM_ALL,将在创立的方针上设置相应的特点。
    • source:源码列表。
  • 示例
    add_executable (CMakeClient0331 "CMakeClient0331.cpp" "CMakeClient0331.h")
    

4. project

  • 含义

    为整个工程设置一个工程名

  • 格式

    project (<PROJECT-NAME> [LANGUAGES] [<language-name>...])
    project (<PROJECT-NAME> [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]] [LANGUAGES<language-name>...])
    
  • 参数介绍:

二、cmake 指令

生成一个项目的构建体系

cmake [<options>] <path-to-source>
cmake [<options>] <path-to-existing-build>
cmake [<options>] -S <path-to-source> -B <path-to-build>

运用 <path-to-build> 作为构建树,运用 <path-to-source> 作为源树。指定的途径可所以绝对途径,也可所以相对于当时工作目录的途径。源树必须包含一个CMakeLists.txt文件。假如构建树还不存在,将主动创立它。例如:

cmake -DCMAKE_BUILD_TYPE=Release -S . -B build
Build a Project
cmake --build <dir> [<options>] [-- <build-tool-options>]
Install a Project
cmake --install <dir> [<options>]
Open a Project
cmake --open <dir>
Run a Script
cmake [{-D <var>=<value>}...] -P <cmake-script-file>
Run a Command-Line Tool
cmake -E <command> [<options>]
Run the Find-Package Tool
cmake --find-package [<options>]
View Help
cmake --help[-<topic>]

三、跨渠道 C++ 库办理工具: vcpkg 装置

1. 运用 gitbash 下载vcpkg

git clone https://github.com/microsoft/vcpkg

cMake进阶之使用vcpkg管理库

cd vcpkg
./bootstrap-vcpkg.sh #powershell上运用:.\bootstrap-vcpkg.bat

cMake进阶之使用vcpkg管理库

2. 运用 powershell 装置您的项目所需求的库:

进入vcpkg目录

cd vcpkg

装置库

.\vcpkg install [packages to install]

装置一个库,这里以之前提到过的 eigen3 为例

.\vcpkg install eigen3

3. 检查当时装置的库支撑的渠道

./vcpkg help triplets

4. 移除一个已经装置的库

.\vcpkg.exe remove eigen3

5. 运用search子指令来查找vcpkg中集成的库:

.\vcpkg search [search term]

6. 集成到大局

Vcpkg提供了一套机制,可以全主动的适配目录,而开发者不需求关怀已装置的库的目录在哪里,也不需求设置[ 比如这里我需求在 Visual Studio 中运用 vcpkg,所以也需求运转以下指令 (首次发动需求办理员权限)]

.\vcpkg integrate install

cMake进阶之使用vcpkg管理库

CMake需求运用,记住下面的这个途径,在运用cmake构建的时候需求运用 CMAKE——TOOLCHAIN_FILE传入

-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake

也就是

cmake -DCMAKE_BUILD_TYPE=Release -S . -B build -DCMAKE——TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake

7. 若要移除集成

.\vcpkg integrate remove

linux上可以参阅 blog.csdn.net/sexyluna/ar…

8. 检查装置列表

.\vcpkg list

9. 使用

cmake -S . -B build -DCMAKE--TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake

10. 其他跨渠道C++库办理 conan

  • 装置 python 略过,装置成功后可以检查版本

        python --version
    
  • 装置python的时候会主动装置pip

        pip install conan