使用CMake和vcpkg配置并构建C++项目

50 阅读1分钟

参考:

  1. vcpkg 文档 | Microsoft Learn
  2. 通过 CMake 安装和使用包 | Microsoft Learn

一、设置vcpkg

  1. git拉取vcpkg
git clone https://github.com/microsoft/vcpkg.git
  1. 执行脚本安装vcpkg
./vcpkg/bootstrap-vcpkg.sh

二、设置项目

1.配置环境变量

sudo vim ~/.bashrc
# 在最后一行添加export PATH=$PATH:/path/to/vcpkg

2.创建项目目录

mdkir helloworld && helloworld

三、添加依赖项和项目文件

1.生成vcpkg-configuration.json文件和vcpkg.json文件,并添加依赖。

vcpkg new --application

vcpkg-configuration.json文件包含基线约束(某个时间点的所有包的版本,同一时间点的包相互兼容的可能性最大)。

2.添加依赖fmt

vcpkg add port fmt

vcpkg.json文件中dependencies项包含了fmt。

vcpkg通过解析vcpkg.json文件,解析并安装项目依赖。

3.创建项目文件

CMakeLists.txt文件内容如下:

cmake_minimum_required(VERSION 3.10)
project(HelloWorld)
find_package(fmt CONFIG REQUIRED)
add_executable(HelloWorld helloworld.cpp)
target_link_libraries(HelloWorld PRIVATE fmt::fmt)

helloworld.cpp文件内容如下:

#include <fmt/core.h>

int main()
{
    fmt::print("Hello World!\n");
    return 0;
}

四、生成并运行项目

1.在项目目录中创建CMakePresets.json文件,内容如下:

{
    "version": 3,
    "configurePresets": [
        {
            "name": "default",
            "binaryDir": "${sourceDir}/build",
            "cacheVariables": {
                "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
            }
        }
    ]
}

CMakePresets.json文件指定了CMake的构建目录./build以及CMAKE_TOOLCHAIN_FILE变量,指定了工具链,使得CMake能够识别vcpkg提供的C++库。

执行以下代码生成构建目录和依赖:

cmake --preset=default

2.构建项目

cmake --build build

3.运行应用程序

./build/HelloWorld