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();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章