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

相关推荐
用户805533698033 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner3 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz8 天前
QML Hello World 入门示例
qt
xcyxiner11 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner12 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner12 天前
DicomViewer (添加模型类)3
qt
xcyxiner13 天前
DicomViewer (目录调整) 2
qt
xcyxiner13 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
LDR00615 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术15 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript