【CMake】vcpkg + CMake

【CMake】vcpkg + CMake

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

安装vcpkg

vcpkg支持众多架构,有arm-uwparm-windowsarm64-uwparm64-windowsx64-linuxx64-osxx64-uwpx64-windowsx64-windows-staticx86-uwpx86-windowsx86-windows-static。 下面我已curl包为事例,介绍vcpkg的安装和使用。


# 下载vcpkg项目
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
 
 
# 本地编译
.\bootstrap-vcpkg.bat


# 安装指定的包,curl包分号后面的表示架构,可用的值为之前列出的那些。
vcpkg install curl:x64-windows


# 已安装的包更新
vcpkg upgrade


# 列出已经安装的包
vcpkg list


# 删除已安装的包
vcpkg remove curl:x64-windows


# 集成 
# 为每一个用户设置
vcpkg integrate install

# 为当前项目配置,这里需要在该项目的目录下拥有一份vcpkg的拷贝
vcpkg integrate project

安装包

默认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使用中的常见问题

vcpkg和cmake合作使用时,明明CMakefile编写正确,但是却一直找不到第三方引用呢?
面对这种情况需要从以下几个方面去排查。

  • 第一,CMAKE_TOOLCHAIN_FILE是否设置为了vcpkg.cmake文件路径了?如果设置了的话,是否是在project()命令之前,因为如果在project命令之后的话就无效了。
  • 第二,对vcpkg.cmake预设好的变量是否进行了覆盖操作?我之前就放过错误,将vcpkg.cmake中预设的变量CMAKE_PREFIX_PATH覆盖,结果导致无法引入第三方包的问题

参考链接

vcpkg使用详解

vcpkg + CMake

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用vcpkgcmake安装和配置pcl时,你可以按照以下步骤进行操作: 1. 首先,你需要在Visual Studio中创建一个新的空的C++项目,或者使用已有的项目。确保你在项目文件夹中打开一个命令提示符或PowerShell窗口。 2. 使用vcpkg来安装pcl和vtk的依赖项。在命令提示符或PowerShell窗口中,导航到vcpkg的安装目录,并运行以下命令: ``` .\vcpkg.exe install pcl[vtk --recurse``` 这将安装pcl和vtk所需的所有依赖项。 3. 安装Cmake,你可以从官方网站上下载并安装Cmake。 4. 在项目的根目录下创建一个名为CMakeLists.txt的文件,并将以下内容复制到文件中: ``` cmake_minimum_required(VERSION3.8) project(pcltest1) find_package(PCL REQUIRED) if(PCL_FOUND) include_directories(${PCL_INCLUDE_DIRS}) link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) add_executable(pcltest1 src/pcltest1.cpp) target_link_libraries(pcltest1 ${PCL_LIBRARIES}) endif() ``` 这个CMakeLists.txt文件定义了项目的构建规则和依赖项。 5. 在命令提示符或PowerShell窗口中,导航到项目文件夹,并运行以下命令来生成项目文件: ``` cmake . ``` 这将根据CMakeLists.txt文件生成项目文件。 6. 最后,使用Visual Studio打开项目文件,并通过构建和运行项目来验证pcl是否正确安装和配置。 请注意,上述步骤假设你已经正确安装了vcpkgCMake,并且已经配置了适当的环境变量。如果你遇到任何问题,请参考vcpkgCMake的官方文档或社区支持来获取更多帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值