vcpkg + CMake

Posted 力为

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vcpkg + CMake相关的知识,希望对你有一定的参考价值。

除了Conan外,vcpkg也是不错的C++包管理工具。跟conan相比,vcpkg是源码级的包管理,安装包的时候同时在本地编译。

 

安装vcpkg

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg

#编译
.\\bootstrap-vcpkg.bat

#集成
vcpkg integrate install

安装包

默认32位

vcpkg install gtest
vcpkg install benchmark

 

在CMake中使用vcpkg

cmake_minimum_required(VERSION 3.5)

# 设置VCPKG_ROOT所在的位置
set(VCPKG_ROOT "$CMAKE_SOURCE_DIR/../vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE PATH "")
set(CMAKE_TOOLCHAIN_FILE $VCPKG_ROOT)

project(TEST_NOW)

find_package(GTest CONFIG REQUIRED)
find_package(benchmark CONFIG REQUIRED)

add_subdirectory(string_test)

 

增加依赖库

target_link_libraries(string_test PRIVATE GTest::gtest GTest::gtest_main GTest::gmock GTest::gmock_main)
target_link_libraries(string_test PRIVATE benchmark::benchmark benchmark::benchmark_main)

代码中可以直接使用benchmark:

#include <string>
#include <benchmark/benchmark.h>

static void BM_STRING(benchmark::State& state)

    for (auto _ : state) 
        for (int ii = 0; ii < 1000000; ++ii)
        
            std::string x("https://blog.csdn.net/mythma");
            x.c_str();
        
    

BENCHMARK(BM_STRING);

BENCHMARK_MAIN();

 

以上是关于vcpkg + CMake的主要内容,如果未能解决你的问题,请参考以下文章

vcpkg错误分析方法

通过vcpkg和cmake安装后如何生成c++ grpc文件?

如何设置 CMAKE_TOOLCHAIN_FILE(vcpkg) 而不将其放入 VScode 的 CMakeLists.txt 中?

在 Visual Studio 上的 C++ 项目中将 NetCDF(通过 vcpkg 安装)与 CMake 一起使用时未解析的外部符号

vcpkg —— VC++ 打包工具

无法为模块“QtQuick”(CMake)加载插件