《QDebug 2023年11月》

2023-12-01 12:20
文章标签 2023 qdebug

本文主要是介绍《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的支持[自动]

这篇关于《QDebug 2023年11月》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/441136

相关文章

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

2023 CCPC(秦皇岛)现场(第二届环球杯.第 2 阶段:秦皇岛)部分题解

所有题目链接:Dashboard - The 2023 CCPC (Qinhuangdao) Onsite (The 2nd Universal Cup. Stage 9: Qinhuangdao) - Codeforces 中文题面: contest-37054-zh.pdf (codeforces.com) G. Path 链接: Problem - G - Codeforces

HNU-2023电路与电子学-实验1

写在前面: 这是电路与电子学课程的第一次实验,按照指导书的需求在Multisim软件搭建一个电路传感器模型,难度较小,细心完成就没有问题。 小tips:22级实验是采用上传到测试平台来进行功能检测,如果不通过则会打回修改后再重新提交,(我们那时候的评测系统特别特别慢,一次只能测一个同学,剩下同学就排队等着,久的时候甚至超过10个小时),这里列举一个常见的错误:热噪声有+号这端需要连接有源滤波器

【python】—— Python爬虫实战:爬取珠海市2011-2023年天气数据并保存为CSV文件

目录 目标 准备工作 爬取数据的开始时间和结束时间 爬取数据并解析 将数据转换为DataFrame并保存为CSV文件         本文将介绍如何使用Python编写一个简单的爬虫程序,以爬取珠海市2011年至2023年的天气数据,并将这些数据保存为CSV文件。我们将涉及到以下知识点: 使用requests库发送HTTP请求使用lxml库解析HTML文档使用dateti

Acrobat Pro DC 2023 for Mac/Win:全能型PDF编辑器深度解析

Adobe Acrobat Pro DC 2023作为一款跨平台的PDF编辑器,无论是对于Mac还是Windows用户,都提供了极为全面且强大的PDF处理功能。该软件凭借其卓越的性能和丰富的特性,成为了全球范围内用户处理PDF文档的首选工具。 一、强大的编辑功能 Acrobat Pro DC 2023内置了多种编辑工具,如文本编辑器、图片替换、页面调整等,使用户能够轻松地对PDF文档进行修改和

【行业报告】2023年消除类手游全球市场洞察

​更多消除内容: 长线消除游戏商业化设计案例:《梦幻花园》 - 游戏干饭之家 谈谈《开心消消乐》是如何做游戏商业化活动 - 游戏干饭之家 消除游戏展现了从简单的游戏玩法到复杂的社交互动,再到精细化运营的发展历程,其通过不断的创新和适应现代游戏的市场变化,依然活跃在市场的前沿 一、消除游戏分类定义 二、消除手游市场现状分析 消除手游近两年下载量增速表现优于整体手游表现,下

【数据分享】2000—2023年我国省市县三级逐月归一化植被指数(NDVI)数据(Shp/Excel格式)

之前我们分享过2000—2023年逐月归一化植被指数(NDVI)栅格数据(可查看之前的文章获悉详情),该数据来源于NASA定期发布的MOD13A3数据集!很多小伙伴拿到数据后反馈栅格数据不太方便使用,问我们能不能把数据处理为更方便使用的Shp和Excel格式的数据! 我们特地对数值在-0.2—1之间的NDVI栅格数据进行了处理,将2000-2023年逐月的归一化植被指数栅格分别按照我国省级行政边

Update Azure OpenAI npm Package to 2023-12-01-preview Version

题意:将 Azure OpenAI npm 包更新到 2023-12-01-preview 版本 问题背景: I am currently using the azure-openai npm package in my project with version 2023-03-15-preview. As per the latest updates, version 2023-12

[SWPUCTF 2023 秋季新生赛]Pingpingping

这种是ctf中比较简单的一类题,主要解法基本上也就那些形式。 这道题我给它提出来主要是涉及了一下比较零散的知识点,觉得想要跟大家分享一下。 <?phphighlight_file(__FILE__);error_reporting(0);$_ping = $_GET['Ping_ip.exe'];if(isset($_ping)){system("ping -c 3 ".$_ping)