银河麒麟v11 arm编译Qt creator8.0.2报错

一、编译qt

1、下载并编译qt5.15.10

https://mirrors.nju.edu.cn/qt/archive/qt/5.15/5.15.10/single/qt-everywhere-opensource-src-5.15.10.tar.xz

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如下图:

相关推荐
lqj_本人1 小时前
鸿蒙Qt触控疑云:事件传递丢失与坐标偏移修复
qt·华为·harmonyos
小此方1 小时前
从零开始手搓堆:核心操作实现 + 堆排序 + TopK 算法+ 向上调整 vs 向下调整建堆的时间复杂度严密证明!
开发语言·数据结构·算法
_OP_CHEN2 小时前
从零开始的Qt开发指南:(五)Qt 常用控件之 QWidget(上):解锁 Qt 界面开发的核心基石
开发语言·c++·qt·前端开发·qwidget·gui开发·qt常用控件
wjs20242 小时前
SQLite 视图
开发语言
q***44812 小时前
java进阶--多线程学习
java·开发语言·学习
艾斯比的日常2 小时前
Neo4j 完全指南:从核心特性到 Java 实战(附企业级应用场景)
java·开发语言·neo4j
后端小张2 小时前
【JAVA 进阶】深入探秘Netty之Reactor模型:从理论到实战
java·开发语言·网络·spring boot·spring·reactor·netty
柠石榴2 小时前
go-1 模型
开发语言·后端·golang
q***d1733 小时前
Rust在网络中的协议栈
开发语言·网络·rust