写点什么

CMake 中使用 vcpkg

作者:向阳逐梦
  • 2023-08-07
    四川
  • 本文字数:896 字

    阅读完需:约 3 分钟

CMake中使用vcpkg

vcpkg 是一个微软开源的 C++包管理器。

在以前的开发中,如果在项目中需要使用某个开源库,例如 qt,我们需要取官网下载 qt 的源码,然后构建得到对应的库,然后在项目中链接这个库。对于自己熟悉的库还好说,若是不熟悉的库,如何拉取源码?如何构建?如何在项目中引用?等等这些问题通常会困扰我们,然而,大多数情况下,我们只是使用这个开源库,并不需要关心这个库的构建和编译等问题。如此,在以前的开发过程中,往往会花费不少的时间在引入开源库上。

vcpkg 是在背景下开发出来的,通过 vcpkg,我们可以在项目中很方便的引入开源库,不用再关心拉取代码、构建开源库的这些事情。

CMake 构建的项目中引入开源库

如果我们的项目是用 cmake 作为构建系统,那么如何引入开源库呢?

  • 使用 vcpkg 安装我们需要的开源库

  • 在 CMakeLists 中引入需要的开源库

vcpkg 安装开源库

例如需要使用 QtWidgets,打开 powershell,输入 vcpkg install qt5-base

CMakeLists 中引入开源库目录结构:在路径 D:\Document\MyCode\vcpkgsample 下|

|–main.cpp|–CMakeLists.txt
复制代码



cmake_minimum_required(VERSION 2.8.12)#设置CMAKE_TOOLCHAIN_FILE 将vcpkg.cmake的路径赋值给CMAKE_TOOLCHAIN_FILE变量。必须在project函数#之前设置SET(CMAKE_TOOLCHAIN_FILE "${VCPKG_ROOT}\\vcpkg\\scripts\\buildsystems\\vcpkg.cmake")project(VcpkgSample)set(EXECUTABLE_NAME VcpkgSample)#添加qt5widgets库的目录find_package(qt5widgets QUIET CONFIG REQUIRED)add_executable(${EXECUTABLE_NAME} main.cpp)#链接qt5widgets库target_link_libraries(${EXECUTABLE_NAME}${Qt5Widgets_LIBRARIES})
复制代码

main.cpp 代码如下


#include <QtWidgets/QApplication>int main(int argc, char *argv[]){    QApplication a(argc, argv);    return a.exec();}
复制代码

打开 x86 Command Prompt 命令行,依次输入

cd /D D:\Document\MyCode\vcpkgsamplemkdir buildcd buildcmake -G"Visual Studio 15 2017" .. -DVCPKG_ROOT="E:\code"
复制代码

其中 VCPKG_ROOT 选项是指定 vcpkg 安装的目录,本机安装在 E:\code 目录下。

就在 build 目录下,生成了 vs2017 解决方案,执行编译。

msbuild VcpkgSample.sln /p:platform="Win32"
复制代码


发布于: 刚刚阅读数: 6
用户头像

向阳逐梦

关注

人生享受编程,编程造就人生! 2022-06-01 加入

某公司芯片测试工程师,嵌入式开发工程师,InfoQ签约作者,阿里云星级博主,华为云·云享专家。座右铭:向着太阳,追逐梦想!

评论

发布
暂无评论
CMake中使用vcpkg_向阳逐梦_InfoQ写作社区