银河麒麟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如下图:

相关推荐
551只玄猫34 分钟前
【数学建模 matlab 实验报告12】聚类分析和判别分析
开发语言·数学建模·matlab·课程设计·聚类·实验报告
小陈工2 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
H Journey3 小时前
C++之 CMake、CMakeLists.txt、Makefile
开发语言·c++·makefile·cmake
lly2024067 小时前
C 标准库 - `<stdio.h>`
开发语言
沫璃染墨7 小时前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++
jwn9997 小时前
Laravel6.x核心特性全解析
开发语言·php·laravel
迷藏4947 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
功德+n7 小时前
Linux下安装与配置Docker完整详细步骤
linux·运维·服务器·开发语言·docker·centos
明日清晨7 小时前
python扫码登录dy
开发语言·python
我是唐青枫8 小时前
C#.NET gRPC 深入解析:Proto 定义、流式调用与服务间通信取舍
开发语言·c#·.net