《QDebug 2023年11月》

一、Qt Widgets 问题交流
1.
二、Qt Quick 问题交流
1.QML 程序渲染异常(闪烁、撕裂等)

Qt5 QML 应用 OpenGL 实现的顺序是 desktop,angle,software,但是经常会遇到渲染异常,比如鼠标在上面晃动的时候闪烁或者撕裂,特别是英特尔的垃圾集显用 desktop 时,之前记录过设置显卡黑名单的方式:

https://blog.csdn.net/gongjianbo1992/article/details/125400723

小工程黑名单用起来也不太方便,这次统一设置成 Qt::AA_UseOpenGLES 测试下不同环境有什么问题。

三、其他
1.Qt5 MSVC 静态编译 

Qt 编译文档:Building Qt Sources | Qt 5.15

a.先安装 Perl 和 Python;

b.静态编译把 qtbase\mkspecs\common\msvc-desktop.conf 中的 MD/MDd 都替换成 MT/MTd;

c.VS 的命令行工具进入 Qt 源码目录(有 configure.bat 文件这个);

d.把网上搜的编译参数敲进去,生成编译配置:

configure.bat -platform win32-msvc -opensource -confirm-license -release -static -static-runtime -prefix "D:/Qt/Qt5_Build"

结合别人的参数以及文档,把自己需要的参数加进去:

configure.bat -static -static-runtime -prefix "D:/Qt/Qt5_Build" -confirm-license -opensource -platform win32-msvc -debug-and-release -force-debug-info -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -opengl es2 -angle -skip qtwebengine -nomake tests -nomake examples -no-feature-d3d12 -mp 

-prefix 是最后 make install 的路径

-no-feature-d3d12 去掉 d3d12 是为了能在 win7 运行

-opengl 是设置 opengl 实现,可以设置 dynamic/desktop/es2 等,Qt5.5 开始官方二进制包默认配置 -opengl dynamic,但是动态可能还得单独带对应的 dll,所以我设置了 -opengl es2,相当于代码中的 Qt::AA_UseOpenGLES,用 desktop 的话 qml 渲染问题多点。单独设置 es2 报错,所以我又加上了 -angle

-skip qtwebengine 跳过 webengine 编译

也可以加上 -optimize-size 和 -strip 优化、裁剪生成的文件尺寸

e.配置好之后就是 namke 和 nmake install 了

不出意外的话,MSVC2019/2022 是能正常编译的

别人翻译的一些设置项:Qt源码编译configure参数列表(全)_input backends-CSDN博客

configure meta:-help,-h ............显示此帮助屏幕-verbose,-v .........在配置期间输出详细消息-continue............尽管有错误仍然继续配置-redo ................用以前使用的选项重新配置。其他选项可能会通过,但不会保存以供-redo稍后使用。-recheck .............放弃缓存的负配置测试结果。安装缺失的依赖关系后使用它。-recheck-all .........放弃所有缓存的配置测试结果。-feature- <特征> ...启用<特征>-no-feature- <feature>禁用<feature> [none]-list-features .......列出可用功能。请注意一些功能也有专用的命令行选项。-list-libraries ......列出可能的外部依赖关系。Build options:-opensource ..........构建Qt的开源版本-commercial ..........构建Qt的商业版-confirm-license .....自动确认许可证-release.............关闭调试版本的Qt [yes]-debug ...............打开调试生成Qt [no]-debug-and-release ...构建两个版本的Qt,包含和不包含打开调试[是](仅适用于Apple和Windows)-optimize-debug ......在调试版本中启用调试友好的优化[自动](MSVC不支持)-optimize-size .......优化发布版本的大小而不是速度[no]-optimized-tools .....甚至在调试版本中构建优化的主机工具[no]-force-debug-info ....为发布版本创建符号文件[no]-separate-debug-info。分离调试信息以分离文件[no]-strip ...............释放不需要的符号的二进制文件[是]-force-asserts .......即使在发布版本中启用Q_ASSERT [no]-developer-build .....编译并链接Qt以开发Qt本身(用于自动测试的出口,额外检查等)[no]-shared..............建立共享的Qt库[是](不适用于UIKit)-static ..............构建静态Qt库[no](对于UIKit是)-framework ...........构建Qt框架包[是](仅限Apple)-platform <target> ...选择主机mkspec [检测到]-xplatform <target> ..交叉编译时选择target mkspec [PLATFORM]-device <name> .......交叉编译设备<name>-device-option <key = value> ...为设备mkspec添加选项-appstore-compliant ..禁用平台应用商店中不允许使用的代码。默认情况下,默认情况下,默认情况下,平台需要通过默认应用商店进行分发,特别是Android,iOS,tvOS,watchOS和Universal Windows Platform。 [汽车]-qtnamespace <name> ..将所有Qt库代码封装在'namespace <name> {...}'中。-qtlibinfix <infix>将所有libQt5 * .so重命名为libQt5 * <infix> .so。-testcocoon ..........带有TestCocoon代码覆盖工具的仪器[no]-gcov ................具有GCov代码覆盖工具的仪器[no]-sanitize {address | thread | memory | undefined}仪器与指定的编译器消毒剂。-c ++ std <edition> ....选择C ++标准<edition> [c ++ 1z / c ++ 14 / c ++ 11](不支持MSVC)-sse2 ................使用SSE2指令[自动]-sse3 / -ssse3 / -sse4.1 / -sse4.2 / -avx / -avx2 / -avx512启用特定的x86指令[auto]启用的仍然受到运行时检测。-mips_dsp / -mips_dspr2使用MIPS DSP / rev2指令[auto]-qreal <type> ........ typedef qreal到指定的类型。 [双]注意:这会影响二进制兼容性。-R <string> ..........为Qt添加一个显式的运行时库路径库。支持相对于LIBDIR的路径。-rpath ...............使用库链接Qt库和可执行文件将路径安装为运行时库路径。如同-R LIBDIR。在苹果平台上,禁用这意味着使用绝对安装名称(基于         LIBDIR)动态库和框架。 [汽车]减少输出......减少输出符号的数量[自动]-reuce-relocations ..减少重定位量[auto](仅适用于Unix)-plugin-manifests ....将清单嵌入插件[no](仅限Windows)-static-runtime ......使用-static,使用静态运行时[no](仅限Windows)-pch .................使用预编译头文件[auto]-ltcg ................使用链接时间码生成[no]-use-gold-linker .....使用GNU gold链接器[auto]-incredibuild-xge ....使用IncrediBuild XGE [no](仅限Windows)-ccache ..............使用ccache编译器缓存[no](仅适用于Unix)-make-tool <tool> ....使用<tool>构建qmake [nmake](仅适用于Windows)-mp ..................使用多个处理器进行编译(仅限MSVC)-warnings-are-errors。将警告视为错误[no; yes如果-developer-build]-silent ..............减少构建输出以便发出警告和错误可以更容易地看到Build environment:-sysroot <dir> .......将<dir>设置为目标sysroot-gcc-sysroot .........使用-sysroot,将编译器通过--sysroot [yes]-pkg-config ..........使用pkg-config [auto](仅适用于Unix)-D <string> ..........传递附加的预处理器定义-I <string> ..........传递额外的包含路径-L <string> ..........传递额外的库路径-F <string> ..........传递额外的框架路径(仅适用于Apple)-sdk <sdk> ...........使用Apple提供的SDK <sdk>构建Qt。争论应该是以下列出的可用SDK之一'xcodebuild -showsdks'。请注意,该参数仅适用于Qt库和使用目标mkspec构建的应用程序 - 不是主机工具,如qmake,moc,rcc等。-android-sdk path ....设置Android SDK根路径[$ ANDROID_SDK_ROOT]-android-ndk路径....设置Android NDK根路径[$ ANDROID_NDK_ROOT]-android-ndk-platform设置Android平台-android-ndk-host ....设置Android NDK主机(linux-x86,linux-x86_64等)[$ ANDROID_NDK_HOST]-android-arch ........设置Android体系结构(armeabi,armeabi-v7a,arm64-v8a,x86,x86_64,mips,mips64)-android-toolchain-version ...设置Android工具链版本-android-style-assets自动从设备中提取样式资产运行。此选项使Android样式表现良好正确的,但也使得Android平台插件与LGPL2.1不兼容。 [是]Component selection:-skip <repo> .........从构建中排除整个存储库。-make <part> .........将<part>添加到要构建的零件列表中。指定此选项将首先清除默认列表。[库和例子,如果不是交叉构建也是工具,还测试是否 - 
开发人员构建]-nomake <part> .......从要构建的零件列表中排除<part>。-compile-examples ....未设置时,只安装示例的源代码[是]-gui .................构建Qt GUI模块和依赖[yes]-widgets .............编译Qt Widgets模块和依赖[yes]-no-dbus .............不要构建Qt D-Bus模块[Android和Windows默认]-dbus-linked .........构建Qt D-Bus并链接到libdbus-1 [auto]-dbus-runtime ........构建Qt D-Bus并动态加载libdbus-1 [no]-accessibility.......启用可访问性支持[是]注意:不建议禁用可访问性。-qml-debug ...........启用QML调试支持[yes]
Qt附带一些第三方库的捆绑副本。这些被使用默认情况下,如果自动检测相应的系统库失败。Core options:-doubleconversion ....选择使用的双转换库[system / qt / no]没有暗示使用sscanf_l和snprintf_l(不精确)。-glib ................启用Glib支持[no;在Unix上自动]-eventfd .............启用eventfd支持-inotify .............启用inotify支持-iconv ...............启用iconv(3)支持[posix / sun / gnu / no](仅适用于Unix)-icu .................启用ICU支持[自动]-pcre ................选择使用的libpcre2 [system / qt]-pps .................启用PPS支持[自动](仅限QNX)-zlib ................选择用过的zlib [system / qt]Logging backends:-Journald ..........启用日志支持[no](仅限Unix)-syslog ............启用syslog支持[no](仅适用于Unix)-slog2 .............启用slog2支持[自动](仅限QNX)Network options:-ssl .................启用SSL支持方法[自动]-no-openssl ..........不要使用OpenSSL [Apple和WinRT上的默认]-openssl-linked ......使用OpenSSL并链接到libssl [no]-openssl-runtime .....使用OpenSSL并动态加载libssl [auto]-securetransport .....使用SecureTransport [auto](仅限Apple)-sctp ................启用SCTP支持[no]-libproxy ............启用libproxy的使用[no]-system-proxies ......默认使用系统网络代理[yes]Gui, printing, widget options:-cups ................启用CUPS支持[自动](仅适用于Unix)-fontconfig ..........启用Fontconfig支持[auto](仅适用于Unix)-freetype ............选择使用的FreeType [system / qt / no]-harfbuzz ............选择用过的HarfBuzz-NG [系统/ qt / no](不在Apple和Windows上自动检测)-gtk .................启用GTK平台主题支持[auto]-lgmon ...............启用lgmon支持[自动](仅限QNX)-no-opengl ...........禁用OpenGL支持-opengl <api> ........启用OpenGL支持。支持的API:es2(在Windows上默认),桌面(在Unix上默认),动态(仅限Windows)-opengles3 ...........启用OpenGL ES 3.x支持而不是ES 2.x [自动]-angle ...............使用捆绑的ANGLE支持OpenGL ES 2.0 [自动](仅限Windows)-combined-angle-lib ..将LibEGL和LibGLESv2合并到LibANGLE(仅限Windows)-qpa <name> ..........选择默认的QPA后端(例如,xcb,cocoa,windows)-xcb-xlib .............启用Xcb-Xlib支持[auto]Platform backends:-direct2d ..........启用Direct2D支持[自动](仅限Windows)-directfb ..........启用DirectFB支持[no](仅适用于Unix)-eglfs .............启用EGLFS支持[auto;没有在Android和Windows上]-gbm ...............为GBM [auto]启用后端(仅限Linux)-kms ...............启用KMS [auto]的后端(仅适用于Linux)-linuxfb ...........启用Linux Framebuffer支持[auto](仅限Linux)-mirclient .........启用Mir客户端支持[no](仅Linux)-xcb ...............选择使用的xcb- *库[system / qt / no](-qt-xcb仍然使用libxcb本身的系统版本)Input backends:-evdev .............启用evdev支持[auto]-imf ...............启用IMF支持[自动](仅限QNX)-libinput ..........启用libinput支持[auto]-mtdev .............启用mtdev支持[auto]-tslib .............启用tslib支持[自动]-xinput2 ...........启用XInput2支持[自动]-xkbcommon-x11 .....选择与xcb结合使用的xkbcommon[系统/ QT / NO]-xkb-config-root <dir> ...使用-qt-xkbcommon-x11,设置默认的XKB配置根目录<dir> [检测]-xkbcommon-evdev ...启用X-less xkbcommon与libinput结合使用[汽车]Image formats:-gif ...............启用对GIF的读取支持[自动]-ico ...............启用对ICO的支持[是]-libpng ............选择用过的libpng [system / qt / no]-libjpeg ...........选择使用的libjpeg [system / qt / no]Database options:-sql- <driver> ........启用SQL <驱动程序>插件。支持的驱动db2 ibase mysql oci odbc psql sqlite2 sqlite tds[全自动]-sqlite ..............选择用过的sqlite3 [系统/ qt]Qt3D options:-assimp ..............选择使用的assimp库[system / qt / no]-qt3d-profile-jobs ...启用作业分析[no]-qt3d-profile-gl .....启用OpenGL分析[no]-qt3d-simd ...........选择SIMD支持级别[no / sse2 / avx2]-qt3d-render .........启用Qt3D渲染方面[是]-qt3d-input ..........启用Qt3D输入方面[是]-qt3d-logic ..........启用Qt3D逻辑方面[是]-qt3d-extras .........启用Qt3D Extras方面[yes]-qt3d-animation .......启用Qt3D动画方面[是]Multimedia options:-pulseaudio ..........启用PulseAudio支持[自动](仅适用于Unix)-alsa ................启用ALSA支持[自动](仅适用于Unix)-no-gstreamer ........禁用对GStreamer的支持-gstreamer [版本]。启用GStreamer支持[自动]在没有参数的情况下,首先尝试1.0,然后再尝试0.10。-mediaplayer-backend <名称> ...选择媒体播放器后端(仅限Windows)支持的后端:directshow(默认),wmfWebengine options:-webengine-alsa ................启用ALSA支持[自动](仅限Linux)-webengine-pulseaudio ..........启用PulseAudio支持[自动](仅限Linux)-webengine-embedded-build ......启用Linux嵌入式构建[auto](仅限Linux)-webengine-icu .................使用系统ICU库[system / qt](仅限Linux)-webengine -ffmpeg ..............使用系统FFmpeg库[system / qt](仅限Linux)-webengine-opus ................使用系统Opus库[system / qt](仅限Linux)-webengine-webp ................使用系统WebP库[system / qt](仅限Linux)-webengine-pepper-plugins ......启用Pepper Flash和Widevine插件[自动]-webengine-printing-and-pdf ....启用打印和输出到PDF[汽车]-webengine-proprietary-codecs ..启用对专有编解码器的支持[no]-webengine-spellchecker ........启用对拼写检查程序的支持[是]-webengine-native-spellchecker。启用对原生拼写检查器的支持[否](仅限macOS)-webengine-webrtc ..............启用对WebRTC的支持[自动]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/186879.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[c++]—string类___深度学习string标准库成员函数与非成员函数

要相信别人能做出来自己一定可以做出来&#xff0c;只不过是时间没到而已 目录 &#x1f6a9;string类对象capacity操作 &#x1f4bb;reserve()保留 &#x1f4bb;resize() &#x1f6a9;string类对象元素访问操作 &#x1f4bb;operator[]和at() &#x1f4bb;operator…

scrum 敏捷开发

scrum 敏捷开发 Scrum 是一种敏捷软件开发方法&#xff0c;旨在通过迭代、增量和协作的方式提高团队的效率和产品质量。下面是关于 Scrum 的一些重要概念和实践&#xff1a; 1. Scrum 团队角色 Scrum 团队通常由以下角色组成&#xff1a; 产品负责人&#xff08;Product Ow…

如何让嵌入式开发板使用主机的网络

配置网络 1.开发板配置 将开发板和主机用网线连接 安装 net-tools&#xff0c;使用 ifconfig 命令 或者使用 ip 命令 su root ip a 发现一个 eth0的网口 ip link set xxx up 有多个网口时可以用该命令启用某一个网口 vim /etc/netplan/00-installer-config.yaml写入以下…

HTML—列表、表格、表单

1、列表 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表 1.1 无序列表 作用&#xff1a;布局排列整齐的不需要规定顺序的区域 标签&#xff1a;ul 嵌套 li&#xff0c;ul 是无序列表&#xff0c;li 是列表条目 注意事项&#…

FPGA falsh相关知识总结

1.存储容量是128M/8 Mb16MB 2.有256个sector扇区*每个扇区64KB16MB 3.一页256Byte 4.页编程地址0256 5&#xff1a;在调试SPI时序的时候一定注意&#xff0c;miso和mosi两个管脚只要没发送数据就一定要悬空&#xff08;处于高组态&#xff09;&#xff0c;不然指令会通过两…

【双向链表的实现】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 1. 双向链表的结构 2. 双向链表的实现 2.1 头文件 ——双向链表的创建及功能函数的定义 2.2 源文件 ——双向链表的功能函数的实现 2.3 源文件 ——双向链表功能的…

Jmeter测试移动接口性能 —— 压测

一般的公司都想知道自己产品的性能瓶颈和以及提升性能&#xff0c;以期大流量来了还撑得住。其实性能测试很难&#xff0c;难点在你不知道性能要达到怎样的需求。难点在于你没有实际的环境场景给你测试&#xff0c;总不能给线上环境你测试吧&#xff1f; 难点在于找性能瓶颈&a…

kafka C++实现消费者

文章目录 1 Kafka 消费者的逻辑2 Kafka 的C API2.1 RdKafka::Conf2.2 RdKafka::Event2.3 RdKafka::EventCb2.4 RdKafka::TopicPartition2.5 RdKafka::RebalanceCb2.6 RdKafka::Message2.7 RdKafka::KafkaConsumer&#xff08;核心&#xff09; 3 Kafka 消费者客户端开发3.1 必要…

Linux操作系统虚拟机安装(图文详解)

目录 前言 Linux系统介绍 虚拟机安装 1.安装步骤 2.破解激活步骤 3.创建Linux系统虚拟机 虚拟机的相关设置 1.基础设置 2.语言设置为中文 前言 今天我们开始学习Linux操作系统的安装虚拟机以及相关的Linux的环境配置&#xff0c;后面我还会继续发布Linux系统的相关基…

python 不同的IDE确实是有影响的

1 不同的IDE确实是有影响的 比如现在流行的jupyter notebook 确实很好用 但是有些命令的执行情况是不一样的 1.1 例子&#xff1a;os.system(cls) 比如下面这段代码&#xff0c;在cmd里执行和jupyter notebook里执行效果不一样 原本应该是实现一行字幕在不停地变化&#xf…

手机电脑同步的时间管理工具

有不少上班族会发现自己有太多的工作要完成&#xff0c;并且在工作中往往会浪费很多时间在无关紧要的事情上&#xff0c;而不是专注于真正重要的任务&#xff0c;因此没有足够的时间来完成所有任务。在这种情况下&#xff0c;我们可以使用时间管理软件来帮助自己优先考虑重要的…

IIS post .html页面报 405错误

IIS是不允许本地文件默认post请求的&#xff0c;windows10系统下的IIS&#xff08;10.0版&#xff09;默认也是不能 post请求\*.html或\*.json文件的 1 需要配置一下&#xff0c;配置如下&#xff1a; 2 双击处理程序映射&#xff0c;添加托管处理程序&#xff1a; 3 请求路径 …

es6 语法 解构 拼接 扩展运算 数组降为 symbol 迭代器 生成器 定时器 map 映射 对象字面量 私有属性 构造函数继承

es6 语法 解构 拼接 扩展运算 数组降为 symbol 迭代器 生成器 定时器 map 映射 对象字面量 私有属性 构造函数继承 promise async await 解构 // 解构var character {name:Brucezzz,pseudonym:Bruce,metadata:{age:32,gender:male,airbags: "说两句啊",airconditio…

springboot+jsp+java人才招聘网站4f21r

本基于springboot的人才招聘网站主要满足3种类型用户的需求&#xff0c;这3种类型用户分别为求职者、企业和管理员&#xff0c;他们分别实现的功能如下。 &#xff08;1&#xff09;求职者进入网站后可查看职位信息、企业信息以及职位新闻等&#xff0c;注册登录后可实现申请职…

在MySQL中如何存储一个IPv4地址?

在MySQL如何存储IPv4地址&#xff1f;这个在秋招面试的过程中被问到过&#xff0c;没有答上来&#xff0c;今天猛地想起了这个问题&#xff0c;做一下复盘。 一个IPv4地址是由32位二进制来表示的&#xff0c;用点分十进制表示可以划分为4部分&#xff0c;每部分占8位&#xff…

云时空社会化商业 ERP 系统 service SQL 注入漏洞复现

0x01 产品简介 时空云社会化商业ERP&#xff08;简称时空云ERP&#xff09; &#xff0c;该产品采用JAVA语言和Oracle数据库&#xff0c; 融合用友软件的先进管理理念&#xff0c;汇集各医药企业特色管理需求&#xff0c;通过规范各个流通环节从而提高企业竞争力、降低人员成本…

【开题报告】基于SpringBoot的婚纱店试妆预约平台的设计与实现

1.选题背景 婚礼是人生中的重要时刻&#xff0c;而试妆是婚礼准备过程中不可或缺的一环。传统的婚纱店试妆预约方式通常需要亲自到店或通过电话预约&#xff0c;这样的方式可能存在一些问题。首先&#xff0c;用户需要花费时间和精力到店进行预约&#xff0c;对于忙碌的现代人…

『PyTorch学习笔记』分布式深度学习训练中的数据并行(DP/DDP) VS 模型并行

分布式深度学习训练中的数据并行(DP/DDP) VS 模型并行 文章目录 一. 介绍二. 并行数据加载2.1. 加载数据步骤2.2. PyTorch 1.0 中的数据加载器(Dataloader) 二. 数据并行2.1. DP(DataParallel)的基本原理2.1.1. 从流程上理解2.1.2. 从模式角度理解2.1.3. 从操作系统角度看2.1.…

11-22 SSM3

书城分页查询 使用mybatis分页插件&#xff1a; 请完成登陆注册 -> 跳转到首页 解决前端上架时间点击切换 以及侧边栏点击由背景颜色的改变 完成超链接的绑定点击时间 -> jquery $(document).ready(function() { // 初始化上架时间状态为 true&#xff08;上架&…

简明指南:使用Kotlin和Fuel库构建JD.com爬虫

概述 爬虫&#xff0c;作为一种自动化从网络上抓取数据的程序&#xff0c;广泛应用于数据分析、信息提取以及竞争对手监控等领域。不同的实现方式和编程语言都能构建出高效的爬虫工具。在本文中&#xff0c;我们将深入介绍如何充分利用Kotlin和Fuel库&#xff0c;构建一个简单…