2

最近发布的 Qt 6.0.0 改变了 qtimageformats 的分布。Thay 不再是预先构建的,必须在本地构建。

我检查了这里描述的 QT git 源代码。

git clone git://code.qt.io/qt/qt5.git
cd qt5
git checkout v6.0.0

然后,我编辑了 .gitmodules 文件并将 qtimageformats 的忽略标志更改为“插件”。我发现配置脚本基于 .gitmodules 和这些标志。

[submodule "qtimageformats"]
    depends = qtbase
    path = qtimageformats
    url = ../qtimageformats.git
    branch = dev
    status = addon

我根据Qt doc设置了所需的构建环境。

REM Set up Microsoft Visual Studio 2019, where <arch> is amd64, x86, etc.
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64
SET _ROOT=C:\Qt6\Qt5
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
REM Uncomment the below line when using a git checkout of the source repository
REM SET PATH=%_ROOT%\qtrepotools\bin;%PATH%
SET _ROOT=

然后,我检索了Qt docs中描述的所有 git 模块。

perl init-repository

到现在为止 - 一切都按预期工作。配置帮助确实显示了 qtimageformats 选项

configure --help
...
...
Further image format options:

  -jasper .............. Enable JPEG-2000 support using the JasPer library [no]
  -mng ................. Enable MNG support [no]
  -tiff ................ Enable TIFF support [system/qt/no]
  -webp ................ Enable WEBP support [system/qt/no]

但是,现在我陷入了以下错误。配置似乎无法识别这些选项?

c:\qt6\qt5>configure.bat -tiff qt
+ cd qtbase
+ c:\qt6\qt5\qtbase\configure.bat -top-level -tiff qt
CMake Error at qtbase/cmake/QtProcessConfigureArgs.cmake:227 (message):
  Unknown command line option '-tiff'.
Call Stack (most recent call first):
  qtbase/cmake/QtProcessConfigureArgs.cmake:531 (qtConfAddError)

Qt 6 没有关于 qtimageformats 的文档 - 所以我可能错过了一些东西,但不知道是什么。欢迎任何想法!

4

2 回答 2

1

最后,我成功了。我找到了关于 Qt6的Phoronix 文章。

Qt6 开始使用 conan.io 包管理器。所以Qt安装程序提供的源码就足够了。它将 qtimageformats 的源下载到以下位置~/Qt/AdditionalLibraries/Qt/qtimageformats-6.0.0

剩下的交给柯南。

MacOS [共享库]

cd ~/Qt/AdditionalLibraries/Qt/qtimageformats-6.0.0/Src
export QT_PATH=~/Qt/6.0.0/clang_64
~/Qt/Tools/Conan/conan install . -o qtimageformats:shared=True
~/Qt/Tools/Conan/conan build .

PS:安装命令实际上是在构建命令之前 - 这不是一个错误。

在 MacOS 上成功构建了库。


Windows [共享库]

CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
SET QT_PATH=C:\Qt\6.0.0\msvc2019_64
cd C:\Qt\AdditionalLibraries\Qt\qtimageformats-6.0.0\Src
md build
cd build
C:\Qt\Tools\Conan\conan install .. -s build_type=RelWithDebInfo
C:\Qt\Tools\Conan\conan build ..
C:\Qt\Tools\Conan\conan build ..

PS:第一个conan build命令会失败,因为生成的 cmake 文件不适合并行构建。第二个conan build命令将成功。如果您现在,如何说服conan.io在没有conanfile.py的情况下禁用并行构建,请告诉我们。

于 2020-12-09T22:35:38.093 回答
0

在我自己使用新的 CMake 框架构建 Qt 之后,构建这些额外包的最简单方法仍然是在包的根目录中使用 qmake,例如(例如在使用 VS 的 WINDOWS 上):

set PATH=c:\Qt\6.0.0\bin;%PATH%
qmake <package>.pro
nmake
nmake install

第一行只是提供了我的 qt6 qmake 的路径。

于 2021-01-13T13:43:21.697 回答