i007.cc

i007.cc

优先队列-降维打击

vcpkg + CMake

原文地址

 

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

 

安装vcpkg

  1. git clone https://github.com/Microsoft/vcpkg.git
  2. cd vcpkg
  3. #编译
  4. .\bootstrap-vcpkg.bat
  5. #集成
  6. vcpkg integrate install

安装包

默认32位

  1. vcpkg install gtest
  2. vcpkg install benchmark

 

在CMake中使用vcpkg

  1. cmake_minimum_required(VERSION 3.5)
  2. # 设置VCPKG_ROOT所在的位置
  3. set(VCPKG_ROOT ${CMAKE_SOURCE_DIR}/../vcpkg/scripts/buildsystems/vcpkg.cmake” CACHE PATH “”)
  4. set(CMAKE_TOOLCHAIN_FILE ${VCPKG_ROOT})
  5. project(TEST_NOW)
  6. find_package(GTest CONFIG REQUIRED)
  7. find_package(benchmark CONFIG REQUIRED)
  8. add_subdirectory(string_test)

 

增加依赖库

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

代码中可以直接使用benchmark:

  1. #include <string>
  2. #include <benchmark/benchmark.h>
  3. static void BM_STRING(benchmark::State& state)
  4. {
  5. for (auto _ : state) {
  6. for (int ii = 0; ii < 1000000; ++ii)
  7. {
  8. std::string x(“https://blog.csdn.net/mythma”);
  9. x.c_str();
  10. }
  11. }
  12. }
  13. BENCHMARK(BM_STRING);
  14. BENCHMARK_MAIN();

发表回复