提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:鲍佳佳|2021-04-02 10:07:35.797|阅读 451 次
概述:你可能知道,在CMake代码中使用第三方软件是通过包来完成的,使用find_package命令。find_package的作用就像它的名字一样:找到一个包。如果包不存在,它会将
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
开始前先介绍一下我们的Qt商业控件:
你可能知道,在CMake代码中使用第三方软件是通过包来完成的,使用find_package命令。
find_package的作用就像它的名字一样:找到一个包。如果包不存在,它会将<PackageName>_FOUND变量设置为FALSE,如果包是REQUIRED的,CMake配置会出错。
这就是包管理器的作用。包管理器的设置可以在CMake代码中完成,也可以通过硬编码特定的代码来完成,或者在配置CMake项目之前记录下需要如何设置环境。
包管理器自动设置
CMake从3.15版本开始,允许通过CMAKE_PROJECT_INCLUDE_BEFORE注入自定义代码,而不需要修改项目的CMake源代码。
Qt Creator 4.15版将在初始的cmake参数中插入这一行。
-DCMAKE_PROJECT_INCLUDE_BEFORE:PATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake
auto-setup.cmake 是 Qt Creator 附带的一个 cmake 脚本,它将对以下包管理器进行自动设置:conan、vcpkg、自定义 CMake 包管理器,如 cpp-pm/hunter。
这个功能可以在Qt Creator的Options -> Build & Run -> CMake中关闭,然后取消选中 "Package manager auto-setup"。
Hello World项目
为了测试此功能,我将使用fmtlib / fmt库介绍一个Hello World项目。
CMakeLists.txt 看起来像这样:
cmake_minimum_required(VERSION 3.15) project(hello-world) add_executable(hello-world main.cpp) find_package(fmt REQUIRED) target_link_libraries(hello-world PRIVATE fmt::fmt)main.cpp 看起来像这样:
#include <fmt/core.h> int main() { fmt::print("Привет мир\n"); return 0; }这是Qt Creator在构建和运行应用程序后的样子:
Qt Creator 4.15获得了指定“工具的文本编解码器”的功能,需要将其设置为UTF-8或IBM866才能在输出窗格中显示Приветмир消息。
Conan
使用conan将fmt库放入项目就像创建conanfile.txt一样容易:
[requires] fmt/7.1.3 [generators] cmake_find_package
CMake目标cmake_find_package需要使用conan生成器fmt::fmt。
在您的系统上获取conan就像运行一样容易:
pip3 install conan
这假定你的系统上已经安装了python3。
Qt Creator的auto-setup.cmake负责为项目运行conan安装,并尽可能地让你的体验不那么痛苦。这得益于conan-cmake的使用,conan-cmake也是Qt Creator的附带工具。
如果你不想让conan自动设置,你可以将CMake变量QT_CREATOR_SKIP_CONAN_SETUP设置为TRUE。
vcpkg
使用vcpkg将fmt库放入项目就像创建此vcpkg.json文件一样容易:
{ "name": "hello-world", "version-string": "0.0.1", "dependencies": [ "fmt" ] }设置以便在Qt Creator中使用就像运行一样容易:
> git clone //github.com/microsoft/vcpkg > .\vcpkg\bootstrap-vcpkg.bat
以上命令将为vcpkg设置目录结构,并下载一个预制的vcpkg可执行文件。
Qt Creator的auto-setup.cmake需要在PATH环境变量中加入vcpkg.exe。
在Qt Creator 4.15中,你可以在环境设置中这样编辑PATH环境。
PATH=${PATH};c:\projects\vcpkg
auto-setup.cmake会将CMAKE_TOOLCHAIN_FILE设置为vcpkg工具链文件,并在这之前为VCPKG_TARGET_TRIPLET设置相应的值。
如果你不想让vcpkg自动设置,可以将CMake变量QT_CREATOR_SKIP_VCPKG_SETUP设置为TRUE。
自定义CMake程序包管理器
Qt Creator的auto-setup.cmake会先在源目录中查找一个名为QtCreatorPackageManager.cmake的文件后,如果找到了,那么它就被收录了。
对于只有CMake的包管理器cpp-pm/hunter,我们可以有一个QtCreatorPackageManager.cmake,它的样子是这样的。
set(HUNTER_PACKAGES fmt) include(FetchContent) FetchContent_Declare(cpp-pm-setup GIT_REPOSITORY //github.com/cpp-pm/gate) FetchContent_MakeAvailable(cpp-pm-setup) set(QT_CREATOR_SKIP_PACKAGE_MANAGER_SETUP ON)
QT_CREATOR_SKIP_PACKAGE_MANAGER_SETUP会告诉auto-setup.cmake提前退出,跳过conan和vcpkg自动检测。
下载Qt立刻体验吧!!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢