QT6在线安装与在Linux上的环境变量配置

一、介绍

使用在线安装工具安装Qt6之后,使用还是出现了许多报错,例如找不到QtWidget的库,意识到可能需要手动进行环境变量配置,遂记录安装与配置过程。

二、安装

考虑到官方服务器是如此遥远,ustc镜像站又是如此的近,毫不犹豫使用ustc mirrors-Qt镜像源进行本次安装。

其实具体的安装过程镜像源使用帮助中有介绍,简单来说就是到ustc online_installers 下载站网站中下载在线安装器,然后在命令行启动安装器的时候指定--mirror来选择使用的是ustc镜像源来进行在线下载。

Linux x64机型使用下面的命令即可:

1
2
chmod +x qt-unified-linux-x64-online.run
./qt-unified-linux-x64-online.run --mirror https://mirrors.ustc.edu.cn/qtproject

打开之后,登陆自己的账号,在选择安装套件时勾选任何一个版本即可(可全选也可以自己展开选择自己需要的,会节省一些内存,其他的保持默认。

静待安装完成。

三、配置环境变量

如果你使用的bash,将下面四行添加进入.bashrc,则仅为你的用户添加环境变量,也可以直接放置在/etc/profile最后。

1
2
3
4
export QTDIR=/home/dwh/Apps/Qt/6.8.1/gcc_64/ # 这里替换成自己的安装位置,要选择到版本号直到gcc_64文件夹
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

如果你用的是高分屏,还可以加入下面两行来启用QT的高分屏模式:

1
2
export QT_HIGHDPI=1
export QT_SCALE_FACTOR=1.5 # 放大1.5倍

四、配置fcitx5中文输入支持

我使用的桌面环境是kde,使用fcitx5提供中文输入支持,但发现qt creator以及Qt应用无法输入中文,遂在互联网上搜索,找到以下解决方法。

1. 克隆fcitx5-qt

1
git clone https://github.com/fcitx/fcitx5-qt.git

有一个相似的仓库叫fcitx-qt5,fcitx也有后面带5和不带5之分。反正我的是fcitx5使用另一个仓库编译会提示找不到fcitx。

2. 修改CmakeLists.txt

主要是修改版本为支持Qt6的版本,然而我并没有进行修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
cmake_minimum_required(VERSION 3.16)
project(fcitx5-qt VERSION 5.1.8)
set(FCITX5_QT_VERSION ${PROJECT_VERSION})

set(REQUIRED_QT4_VERSION 4.8.0)
set(REQUIRED_QT5_VERSION 5.5.0)
set(REQUIRED_QT6_VERSION 6.0.0)

find_package(ECM 1.4.0 REQUIRED)

set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)

option(ENABLE_QT4 "Enable Qt 4" Off)
option(ENABLE_QT5 "Enable Qt 5" On)
option(ENABLE_QT6 "Enable Qt 6" On)
option(ENABLE_X11 "Enable X11 support" On)
option(BUILD_ONLY_PLUGIN "Build only plugin" Off)
option(BUILD_STATIC_PLUGIN "Build plugin as static" Off)
option(WITH_FCITX_PLUGIN_NAME "Enable plugin name with fcitx" On)
option(ENABLE_QT6_WAYLAND_WORKAROUND "Enable Qt6 Wayland workaround" On)

if (BUILD_ONLY_PLUGIN)
set(LIBRARY_TYPE OBJECT)
else()
set(LIBRARY_TYPE SHARED)
add_definitions(-DFCITX_GETTEXT_DOMAIN=\"fcitx5-qt\")
if (BUILD_STATIC_PLUGIN)
message(FATAL_ERROR "BUILD_STATIC_PLUGIN requires BUILD_ONLY_PLUGIN")
endif()
endif()

if (BUILD_ONLY_PLUGIN AND BUILD_STATIC_PLUGIN)
set(PLUGIN_LIBRARY_TYPE STATIC)
else()
set(PLUGIN_LIBRARY_TYPE MODULE)
endif()

add_definitions(-DFCITX5_QT_VERSION=\"${FCITX5_QT_VERSION}\")

include(GNUInstallDirs)
include(FeatureSummary)
include(GenerateExportHeader)
include(ECMSetupVersion)
include(ECMGenerateHeaders)
include(ECMUninstallTarget)

if (ENABLE_X11)
find_package(XCB REQUIRED COMPONENTS XCB)
endif()
find_package(XKBCommon 0.5.0 REQUIRED COMPONENTS XKBCommon)
if (NOT BUILD_ONLY_PLUGIN)
find_package(Fcitx5Utils 5.0.16 REQUIRED)
endif()

if (ENABLE_X11)
find_package(X11 REQUIRED)

add_library(X11Import UNKNOWN IMPORTED)
set_target_properties(X11Import PROPERTIES
IMPORTED_LOCATION "${X11_X11_LIB}"
INTERFACE_INCLUDE_DIRECTORIES "${X11_X11_INCLUDE_PATH}")
endif()

if (BUILD_ONLY_PLUGIN)
# Dup a little bit option here.
include(CompilerSettings)
else()
include("${FCITX_INSTALL_CMAKECONFIG_DIR}/Fcitx5Utils/Fcitx5CompilerSettings.cmake")
find_package(Gettext REQUIRED)
endif()

set(Fcitx5Qt6_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}/Fcitx5Qt6)
set(Fcitx5Qt5_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}/Fcitx5Qt5)
set(Fcitx5Qt4_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}/Fcitx5Qt4)

if(ENABLE_QT4)
add_subdirectory(qt4)
endif()

if(ENABLE_QT5)
add_subdirectory(qt5)
endif()

if(ENABLE_QT6)
add_subdirectory(qt6)
endif()

if(NOT BUILD_ONLY_PLUGIN)
add_subdirectory(po)
endif()

enable_testing()
add_subdirectory(test)

feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)

3. 编译

如果环境配置的没问题,直接编译即可。

1
2
3
4
mkdir build
cd build
cmake ..
make

可能会出现缺少"ECM"的错误,安装包extra-cmake-modules即可,这里我就出现这一个错误,如果出现其他错误一定是缺少工具链或库,自行补全。

4. 安装库

1
2
cp qt6/platforminputcontext/libfcitx5platforminputcontextplugin.so /home/dwh/apps/Qt/6.8.1/gcc_64/plugins/platforminputcontexts/
cp qt6/platforminputcontext/libfcitx5platforminputcontextplugin.so /home/dwh/apps/Qt/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/

QT6在线安装与在Linux上的环境变量配置
https://blog.cxhap.top/2025/01/08/QT6在线安装与在Linux上的环境变量配置/
作者
DingWH03
发布于
2025年1月8日
许可协议