【CMake】CMake中使用vcpkg

【CMake】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\vcpkgsample
mkdir build
cd build
cmake -G"Visual Studio 15 2017" .. -DVCPKG_ROOT="E:\code"

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

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

msbuild VcpkgSample.sln /p:platform="Win32"
使用vcpkg进行cmake构建,你需要按照以下步骤进行操作: 1. 首先,你需要在x86 Command Prompt命令行导航到你的项目目录。使用cd命令进入该目录,例如:cd /D D:\Document\MyCode\vcpkgsample。 2. 接下来,你需要创建一个build文件夹,并进入该文件夹。使用mkdir命令创建build文件夹,然后使用cd命令进入该文件夹,例如:mkdir build,cd build。 3. 现在,你可以运行cmake命令来生成构建系统所需的文件。使用cmake命令,同时指定生成器和CMakeLists.txt所在的路径。例如,如果你使用的是Visual Studio 2017,可以运行以下命令:cmake -G"Visual Studio 15 2017" .. -DVCPKG_ROOT="E:\code"。这里的"Visual Studio 15 2017"是生成器的名称,".."表示上一级目录,-DVCPKG_ROOT="E:\code"是vcpkg的根目录。 4. 现在,你可以使用生成的构建系统来构建项目。根据你的生成器,可能是使用Visual Studio打开生成的.sln文件并构建,或者是使用其他构建命令。 希望这些步骤对你有所帮助。 [2 [3<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【CMakeCMake使用vcpkg](https://blog.csdn.net/qq_43331089/article/details/124494737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [vcpkg + CMake](https://blog.csdn.net/mythma/article/details/102795111)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值