我刚刚从 Windows 转到 Ubuntu,很遗憾事情似乎不像在 Windows 中那么容易。我在 Windows 上从源代码构建了 Qt,没有遇到问题。在 Ubuntu 上构建成功,但当我尝试将 qmake 添加到 Qt 版本时,出现“Qmake 不可执行”的错误。
我测试了使用 qmake 创建 makefile,并且成功了。
文件 qmake:/home/usr/Qt/6.1.0/build/bin/qmake:ELF 64 位 LSB 可执行文件,x86-64,版本 1(GNU/Linux),动态链接,解释器 /lib64/ld-linux-x86-64.so.2,适用于 GNU/Linux 3.2.0,已剥离
qmake -v:QMake 版本 3.1 在 /home/usr/Qt/6.1.0/build/lib 中使用 Qt 版本 6.1.0
- 操作系统:Ubuntu 20.04.2
- 编译器:gcc-11.1.0
编辑1
事实证明问题出在 GCC-11.1 上。我能够使用 GCC-9.3 构建一个可运行的 qmake。有人能解释一下原因吗?
编辑2
今天终于有时间测试用Qt编译了,Kit里有错误信息:编译器“Clang++12”(x86-linux-generic-elf-64bit)无法为Qt版本“Qt 6.1.0”(x86-linux-generic-elf-64bit)生成代码
这太疯狂了,我用 clang 构建了这个东西。如果我将编译器更改为 gcc,那么工具包会提示我没问题,但随后我在编译时会遇到各种问题。
如果有人能就如何解决这些问题提供一些指导那就太好了。
我希望可以在 Linux 上使用最新的编译器运行 Qt 6。
答案1
Ubuntu 20.04 LTS 发布Qt 5.12,它稳定且功能齐全。
因此首先我应该指出,使用发行版的 Qt(以及 Gtk、WxWidgets 等)总是更好。通过这样做,您可以保证您自行开发的应用程序可移植到相同的 Ubuntu 版本。用户只需在系统上安装所需的 Qt 相关软件包即可。
此外,Debian 和 Ubuntu 中 Qt 6.x 的未来不清楚。
如果你确实想继续编译,请使用下面的解决方案。启用源代码deb-源文件手动或使用软件和更新(software-properties-gtk
)来更新存储库,然后运行:
sudo apt-get build-dep qtbase5-dev libxcb
sudo apt-get install cmake ninja-build clang build-essential libb2-dev libzstd-dev \
libsystemd-dev libhunspell-dev libclang-10-dev libmng-dev \
libwebp-dev libdouble-conversion-dev libkrb5-dev libdirectfb-dev libts-dev \
libproxy-dev libsctp-dev libbrotli-dev
cd ~/Downloads
wget -c https://download.qt.io/official_releases/qt/6.1/6.1.0/single/qt-everywhere-src-6.1.0.tar.xz
tar -xf qt-everywhere-src-6.1.0.tar.xz
cd qt-everywhere-src-6.1.0
./configure
cmake --build . --parallel
一旦构建完成,Qt 就安装好了。您不应该运行“
cmake --install .
”
请注意,此构建不能部署到其他机器或设备。要配置和构建其他 Qt 模块,您可以使用以下便捷脚本:
~/Downloads/qt-everywhere-src-6.1.0/qtbase/bin/qt-configure-module