一、编译qt
1、下载并编译qt5.15.10
2、编译命令
2.1 解压
tar xf qt-everywhere-src-5.15.10.tar.xz
2.2 进入源码路径
cd qt-everywhere-src-5.15.10
2.3 安装编译工具
sudo apt-get install build-essential perl python3 git \
libglib2.0-dev libgl1-mesa-dev libx11-dev libxext-dev \
libxcb1-dev libxcb-xinerama0-dev libxcb-xfixes0-dev
2.4 进入编译目录
mkdir build && cd build
2.5 配置编译
../configure -prefix /opt/qt5.15.10 -opensource -confirm-license \
-nomake examples -nomake tests
2.6 编译
make -j$(nproc)
2.7 安装
sudo make install
2.8 安装完成设置环境变量
echo 'export PATH=/opt/qt5.15.10/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/opt/qt5.15.10/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
二、编译qt creator8.0.2
2.1 下载并解压
https://mirrors.nju.edu.cn/qt/archive/qtcreator/8.0/8.0.2/qt-creator-opensource-src-8.0.2.tar.xz
tar xvf qt-creator-opensource-src-8.0.2.tar.xz
2.2 进入源码路径
cd qt-creator-opensource-src-8.0.2
2.3 创建构建目录
mkdir build && cd build
2.4 安装编译依赖的组件,报错
报错原因:
银河麒麟V11的 libicu74 版本是 74.2-ok6k0.3(系统自带)。
但 llvm-17-dev 依赖的是 74.2-ok6k0.2(旧版),两者版本号不一致 → APT 拒绝安装。
bash
kylin@kylin-pc:~/qt_build/qt-creator-opensource-src-8.0.2/build_creator$ sudo apt install llvm-17-dev libclang-17-dev clang-17 正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
clang-17 已经是最新版 (1:17.0.6-9ok4)。
clang-17 已设置为手动安装。
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
libicu-dev : 依赖: libicu74 (= 74.2-ok6k0.2) 但是 74.2-ok6k0.3 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
2.5 禁用 Clang 插件进行编译
注意:禁用仅影响代码补全及相关功能
禁用 ClangCodeModel ClangFormat ClangTools Clazy
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH=/opt/qt5.15.10 \
-DWITH_CLANG=OFF \
-DWITH_CLANG_FORMAT=OFF \
-DWITH_CLANG_TIDY=OFF \
-DWITH_CLAZY=OFF \
-DWITH_TESTS=OFF
还是报错clang
bash
方法A结果 kylin@kylin-pc:~/qt_build/qt-creator-opensource-src-8.0.2/build$ cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH=/opt/qt5.15.10 \
-DWITH_CLANG=OFF \
-DWITH_CLANG_FORMAT=OFF \
-DWITH_CLANG_TIDY=OFF \
-DWITH_CLAZY=OFF \
-DWITH_TESTS=OFF
CMake Warning (dev) at /usr/share/cmake-3.28/Modules/GNUInstallDirs.cmake:243 (message):
Unable to determine default CMAKE_INSTALL_LIBDIR directory because no
target architecture is known. Please enable at least one language before
including GNUInstallDirs.
Call Stack (most recent call first):
cmake/QtCreatorAPIInternal.cmake:73 (include)
cmake/QtCreatorAPI.cmake:8 (include)
CMakeLists.txt:16 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Error at /usr/lib/cmake/clang-17/ClangConfig.cmake:11 (find_package):
Could not find a package configuration file provided by "LLVM" (requested
version 17.0.6) with any of the following names:
LLVMConfig.cmake
llvm-config.cmake
Add the installation prefix of "LLVM" to CMAKE_PREFIX_PATH or set
"LLVM_DIR" to a directory containing one of the above files. If "LLVM"
provides a separate development package or SDK, be sure it has been
installed.
Call Stack (most recent call first):
cmake/FindClang.cmake:1 (find_package)
CMakeLists.txt:100 (find_package)
-- Configuring incomplete, errors occurred!
2.6 修改cmake
1、打开qt-creator-opensource-src-8.0.2/CMakeLists.txt在100行位置注释并添加
#find_package(Clang QUIET)
set(Clang_FOUND OFF)

2.7、修改FindClang.cmake
qt-creator-opensource-src-8.0.2/cmake/FindClang.cmake
文件顶部加上如下图内容:
set(Clang_FOUND OFF)
return()

2.8、修改src/plugins/clangformat/CMakeLists.txt
打开src/plugins/clangformat/CMakeLists.txt最前面追加
return()

2.9、重新执行cmake
rm -rf *
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH=/opt/qt5.15.10 \
-DCMAKE_INSTALL_PREFIX=/opt/qtcreator-8.0.2 \
-DWITH_CLANG=OFF \
-DWITH_CLANG_FORMAT=OFF \
-DWITH_CLANG_TIDY=OFF \
-DWITH_CLAZY=OFF \
-DWITH_TESTS=OFF
直到显示下方,表示cmake成功
bash
-- Build files have been written to: /home/kylin/qt_build/qt-creator-opensource-src-8.0.2/build
2.10、编译
nproc获取cpu核数,我这里是4核
cmake --build . --parallel 4
大约一小时左右如下图成功(速度与cpu性能有关)

最后再安装一下
sudo cmake --install .
2.11、解决自编译库链接
1、创建文件 /etc/ld.so.conf.d/qt515.conf:
sudo nano /etc/ld.so.conf.d/qt515.conf
2、粘贴以下内容
/opt/qt5.15.10/lib
3、更新动态链接器缓存
sudo ldconfig
这样以后所有程序(包括 Qt Creator 插件)都能找到 Qt5 自编译库
打开qtcreator如下图:
