首页 > 其他分享 >在Qt Creator中使用vcpkg:综合指南

在Qt Creator中使用vcpkg:综合指南

时间:2024-10-12 22:45:11浏览次数:7  
标签:Qt 项目 Creator json vcpkg install

在Qt Creator中使用vcpkg,尤其是在Windows的MinGW环境下,集成可能会遇到挑战。本指南探讨了在Qt Creator中使用vcpkg的不同方法,重点关注推荐的vcpkg.json清单文件方法。

1. 使用vcpkg.json清单文件(推荐)

vcpkg.json清单文件是现代化的、项目本地化的管理方法。它非常适合需要精确依赖控制和版本管理的项目。

优势:

  • 版本控制:在版本控制系统中定义和跟踪依赖版本。
  • 项目自包含:每个项目可以有自己独立的vcpkg.json,避免项目间冲突。
  • 跨平台兼容性:更容易在不同平台上构建项目。
  • 可重现性:开发人员或CI/CD系统可以快速、自动地安装依赖。

使用方法:

  1. 在项目根目录创建vcpkg.json文件。
  2. 在文件中定义项目依赖。
  3. 运行cmake或其他构建工具时,vcpkg会自动解析vcpkg.json并安装所需库。

cmake命令示例:

cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=E:/vcpkg/scripts/buildsystems/vcpkg.cmake

vcpkg.json基本结构:

vcpkg.json文件是描述项目依赖的JSON格式文件。以下是基本结构:

{
  "name": "你的项目名称",
  "version-string": "0.1.0",
  "dependencies": [
    "fmt",
    {
      "name": "vtk",
      "features": ["qt"]
    }
  ]
}

主要元素:

  • name:你的项目名称。
  • version-string:你的项目版本。
  • dependencies:所需库的数组。可以简单指定名称,或使用对象进行更复杂的配置(如指定特性)。

你还可以在此文件中指定版本约束、默认特性和更高级的选项。

在Qt中的使用参考: vcpkg Package Manager | Qt Creator Documentation

2. 使用 vcpkg integrate install(传统方式)

这种方式是 vcpkg 的传统用法,适用于系统级别的库安装和管理。您可以全局安装库,并通过 vcpkg integrate install 进行 IDE(如 Visual Studio 或 Qt Creator)和系统级别的集成。

优势:

  • 全局集成:使用 vcpkg integrate install 可以全局集成库,方便同一台机器上多个项目复用这些库,无需为每个项目重复安装。
  • 简单快捷:对于小型项目或快速原型开发,可以直接安装库并使用,不需要为每个项目管理独立的 vcpkg.json 文件。

缺点:

  • 版本管理困难:全局安装的库没有项目级的版本控制,不同项目可能对库版本有不同要求,容易引发冲突。
  • 跨平台复杂性:全局安装依赖库可能导致跨平台项目管理更加复杂,特别是在 CI/CD 环境中,每个开发者都需要手动安装正确版本的库。

如何使用:

  1. 使用 vcpkg install 安装依赖库:

    vcpkg install fmt
    vcpkg install vtk[qt]
    
  2. 执行全局集成命令:

    vcpkg integrate install
    

    IDE 将自动使用 vcpkg 安装的库。

对于Qt Creator项目,尤其是使用MinGW的项目,强烈推荐使用vcpkg.json清单文件方法结合CMake。这可以避免传统集成方法带来的许多兼容性问题。手动配置路径和库链接可以克服一些限制。如果遇到持续的兼容性问题,可以考虑切换到静态库版本。

根据项目需求选择适合的方法:

  • 对于较大的项目、复杂的依赖关系和多人协作项目,使用vcpkg.json清单文件。
  • 对于快速原型、个人项目或简单依赖,可以使用传统的vcpkg integrate install方法。

标签:Qt,项目,Creator,json,vcpkg,install
From: https://www.cnblogs.com/linxmouse/p/18461620

相关文章

  • Qt自定义一个圆角对话框
    如何得到一个圆角对话框?步骤:1、继承自QDiaglog2、去掉系统自带的边框3、设置背景透明,不设置4个角会有多余的部分出现颜色4、对话框内部添加1个QWidget,给这个widget设置圆角,并添加到布局中让他充满对话框5、后续对话框的所有内容都添加在这个widget里面举例:#ifndefRO......
  • Qt全屏显示和按键ESC退出全屏
    1.需求描述将播放窗口全屏显示,将工具栏边框等隐藏在后面;然后退出全屏通过ESC返回按钮;2.实现方法定义一个全屏的容器类,继承于QWidget;全屏时,去掉窗口的父窗口,然后全屏显示,不去掉父窗口指针无法全屏;按下ESC按钮后,通过keyPressEvent(QKeyEvent*pEvent);函数,将父窗口重新设置回去;......
  • qt5widgets.dll丢失导致腾讯课堂无法打开难题:qt5widgets.dll文件缺失快速解决策略
    面对qt5widgets.dll文件丢失导致腾讯课堂无法打开的难题,以下提供一套快速解决策略,帮助您迅速恢复腾讯课堂的正常使用。一、了解qt5widgets.dll文件的重要性qt5widgets.dll是Qt5框架中的一个动态链接库文件,它提供了丰富的用户界面元素和功能,是许多基于Qt5开发的应用程序所必......
  • PyQt5/6 PySide2/6 在任务栏托盘区域编程,用于显示文字(图片)信息
    PyQt5/6PySide2/6在任务栏编程,用于显示文字(图片)信息本文使用PyQt5演示,其他库如PySide2/6,稍微改改就能用,因为其核心使用的是Win32gui来获取一些系统信息代码结构本文中全部代码全在test_taskbar.py这一个文件中编码,步骤中有变动的地方会注释标注,无改动的不会重复显示出来,需要......
  • Qt,提升QLabel
     QLabel不能满足我的需求,需要提升QLabel为自己封装的类 在UI中,拉一个QLabel出来,鼠标右键点击QLabel,选择【提升为】,然后填写自己的类。 需要注意的是,提升后QLabel需要show一下,不然显示不出来 #ifndefMYVIDEO_H#defineMYVIDEO_H#include<QLabel>#include<QWidge......
  • Qt监听Windows锁屏、解锁、休眠、唤醒、登录、注销消息
    环境:Windows11笔记本,其它环境未测试根据其它博客的直接在窗口nativeEvent中监听WM_WTSSESSION_CHANGE会话消息和WM_POWERBROADCAST电源消息发现不起作用,查阅尝试后找到可行方法如下:会话事件和电源消息都需要先用WindowsAPI注册窗口句柄voidMainWindow::registerSys......
  • Qt初识_通过代码创建hello world
    个人主页:C++忠实粉丝欢迎点赞......
  • 最新Qt6将可执行文件打包为独立exe保姆级教学!含报错:无法定位程序输入点于动态链接库解
     相信大家都有类似的体验,自己已经在Qt练习中写出了不错的小程序,每次想发给别人体验都要发一整个大代码包,还得对面有对应的装好的QT才能运行,或者是想把自己的成果记录下来作为一个单独的exe文件却没有办法,今天教大家Qt如何生成独立可执行exe。注意:以下是Qt6之前版本可用的全过......
  • Linux下以编译源码的方式安装Qt5与Qt6及其使用
    文章目录概要资源下载依赖安装编译Qt5Qt6遇到的问题qtchooser使用概要自Qt5.15开始,不再提供opensourceofflineinstallers,也就是原来的.run的安装文件,只能通过源码编译来安装了参考文章资源下载源码网址,链接为Qt的资源,根据自己选择下载例如#下载源码......
  • 【Qt】详细Qt基础 (包括自定义控件)
    目录QT概述创建项目项目文件(.pro)main.cppmainwindow.uimainwindow.hmainwindow.cpp窗口类QWidget窗口显示QDialog窗口QPushButton创建显示对象树基本概念功能坐标体系控件ItemWidgetsQListWidgetQTreeWidgetQTableWidget自定义控件QT概述模块功能QtCore......