eclipse 开发jsp网站开发,网络整合营销理论是指什么,北京业之峰装饰公司官网,马鞍山的网站建设公司哪家好不愿意安装庞大的QT开发IDE#xff0c;可以编译QT源码库。
下载源码可以用国内镜像#xff0c;如清华大学的#xff1a;Index of /qt/archive/qt/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
我用的是 6.5.3#xff0c;进去之后#xff0c;不要下载整个源…不愿意安装庞大的QT开发IDE可以编译QT源码库。
下载源码可以用国内镜像如清华大学的Index of /qt/archive/qt/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
我用的是 6.5.3进去之后不要下载整个源码包而是找到 submodules 目录。核心组件是 qtbase-everywhere-6.xxx。
qtbase 是基础包只编译这个模块的代码也能写 Qt 程序。解压之后放在一个路径无空格无特殊符号的目录下如 E:\SDK\Qt。然后执行一下 configure 脚本Windows 上是有后缀 .bat 的Linux 脚本无后缀。
命令行参数可参考帮助文档实际上我们只关心一个参数 -prefix。这个参数指定在编译成功后复制安装动态库的目录。
我用的编译器是mingw12.3。
打开powershell管理员运行在命令提示窗口输入
configure.bat -prefix E:\downloads\Qt-6.5.3 -release
这样配置之后将来在执行安装时会把生成的 .dll 复制到这个目录下。
另外如果打算将来要编译其他模块并且让这些模块所生成的二进制文件减少调试符号就要加上 -release 参数。
虽然 qtbase 模块默认是以 release 模式编译但有些子模块默认是 debug 模式编译的。所以如果希望后面编译的所有模块都以 release 模式编译那就明确使用此参数。
一切顺利之后直接交给 CMake 解决。编译
cmake --build .
. 是源码所在目录因为上面我们已经 cd 到源码目录了所以这里用个“.”表示当前目录。
运气好的话一次通过。
编译成功后还要执行一下安装操作
cmake --install .
后面的“.”依然指的是当前目录源码目录编译后的二进制文件重点是那些 .dll会复制到你刚才用 -prefix 参数配置的路径下。如刚才配置的是 F:\Qt6\Libs。
上面的方案是保证出错概率最低的做法但是生成文件会和源码混在一起想手动清理它们估计会累死人。如果想三个基本目录相互隔离就要用接下来的方法。这三个目录是
1、源码。
2、build 输出目录。
3、安装目录。
我们来假设一下
1、源代码E:\downloads\0-temp\qt6\qtbase-everywhere-src-6.5.3
2、build 输出目录E:\downloads\0-temp\qt6\qtbase-everywhere-src-6.5.3\build
3、安装目录E:\downloads\Qt-6.5.3
废话一下我现在的想法是保留源代码目录不变想留着将来重复用把生成/编译输出的东东放在 build 目录编译好后的二进制文件安装到 installed 目录。下面开始操作。
cd E:\downloads\0-temp\qt6\qtbase-everywhere-src-6.5.3\build
命令工具窗口当前目录一般是 C 盘要跨分区 CD 的话要加上 /d 参数。
保持 build 目录为当前目录不要改变在 build 目录中执行 configure 脚本。
..\src\qtbase\configure -prefix ..\installed
这里用的是相对路径你也可以用绝对路径。注意 -prefix 参数是一个短横线的不能写成 --prefix会出错。如果看到下面这一行说明你运气好第一关算是过了接下来的编译成功率很高。
Build files have been written to: E:\downloads\0-temp\qt6\qtbase-everywhere-src-6.5.3/build
接下来的操作就和前面的一样了。保持当前目录在 build 不变依次执行
cmake --build .
cmake --install .
编译默认是生成动态库的所以在 configure 时我们不用改。建议用动态库若编译为静态库做项目时会涉及授权问题也就是说你要购买。 接下来编译serialport模块
编译附加模块无需重新配置而是通过一个脚本来设置参数。这个脚本位于你最终的安装路径中比如我的是 E:\downloads\Qt-6.5.3在 bin 子目录下有个名为 qt-configure-module 的脚本。Linux 上无后缀Windows 上为 .bat。
用法也很简单直接输入qt-configure-module 附加模块源码路径
只有源代码路径是必须参数之后是可选参数。这些参数是什么取决于你正在编译的模块——也就是说每个模块的选项不同。可以在模块的源码目录下找到一个叫 config_help.txt 的文本文件里面会有选项说明。比如qtmultimedia 模块的选项说明如下
Multimedia options:-pulseaudio .......... Enable PulseAudio support [auto] (Unix only)-alsa ................ Enable ALSA support [auto] (Unix only)-no-gstreamer ........ Disable support for GStreamer-gstreamer [version] . Enable GStreamer support [auto]With no parameter, 1.0 is tried first, then 0.10.-evr ................. Enables EVR in WMF [auto]
由于其他模块下面没有configure脚本我们在qtbas源码下配置在qtbase源码下输入如下命令
configure.bat -prefix E:\downloads\Qt-6.5.3 -release
然后切换到serialport模块下
cd ..\qtserialport-everywhere-src-6.5.3\
执行 qt-configure-module 脚本配置 qtshadertools 模块。
E:\downloads\Qt-6.5.3\bin\qt-configure-module.bat E:\downloads\0-temp\qt6\qtserialport-everywhere-src-6.5.3
然后编译安装
cmake --build .
cmake --install .
模块动态库等相关信息会更新到之前编译安装的qtbase安装目录。
然后相同的方法安装qtsvg,qtmultimedia等模块。
在编译 qtmultimedia 模块还要下载 qtshadertools 模块。因为 qtmultimedia 依赖 qtshadertools。说白了咱们要先编译并安装 qtshadertools 模块。
多媒体模块 qtmultimedia 编译成功后。再次回到 install\bin 目录就能看到它了。 有个带“Widgets”结尾的它包含 UI 元素也叫控件主要是用来呈现视频要不然用户只能看个寂寞。
参考连接https://www.cnblogs.com/tcjiaan/p/16575655.html