在龙芯平台源码安装Qt5.15

在龙芯平台源码安装Qt5.15

本来自带的是Qt9,但是因为想要编译某软件,要求Qt>11,龙芯的支持又比较少,所以就自行源码编译。

操作环境

在龙芯平台源码安装Qt5.15_第1张图片

依赖安装

由于是龙芯平台,虽然大多数依赖是能找到的,可能还会有一些漏网之鱼,所以就不一一列举了,按照这个文档挨个装就好了:

添加设备支持

正常来说,不做任何修改就编译是会报错的,大概是"qtbase_src_make faild",具体我就不找了,原因就是没有对设备进行支持。

好在Qt已经提供了两款mips的板卡支持,如下图红框下两个,所以只需要复制一份,然后改改配置就能用了。

在龙芯平台源码安装Qt5.15_第2张图片

可以看到我添加的板卡支持是:linux-mips64el-4000-g++

修改其中qmake.conf的配置,可以参考我的修改

#
# qmake configuration for linux-mipsel-broadcom-97425-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)

load(device_config)

# 注释掉这一部分,检查-device-option后的内容,对新添加的板卡没啥用,反正也不知道新版卡会报啥错
#defineTest(qtConfSanitizeMkspec) {
#    isEmpty(B_REFSW_DEBUG): \
#        error("B_REFSW_DEBUG needs to be set via -device-option B_REFSW_DEBUG=(y|n)")
#    isEmpty(BRCM_ROCKFORD_PATH): \
#        error("BRCM_ROCKFORD_PATH needs to be set via -device-option BRCM_ROCKFORD_PATH=")
#    isEmpty(BRCM_APPLIBS_PATH): \
#        error("BRCM_APPLIBS_PATH needs to be set via -device-option BRCM_APPLIBS_PATH=")
#    deviceSanityCheckCompiler()
#}

# 修改下面编译器的配置,如果是升级了gcc7,应该很容易理解下面的路径
# Modify the defaults we loaded above
CROSS_COMPILE           = /opt/rh/devtoolset-7/root/usr/bin/
QMAKE_CC                = /opt/rh/devtoolset-7/root/usr/bin/mips64el-redhat-linux-gcc
QMAKE_CXX               = /opt/rh/devtoolset-7/root/usr/bin/mips64el-redhat-linux-g++
QMAKE_LINK              = /opt/rh/devtoolset-7/root/usr/bin/mips64el-redhat-linux-g++
QMAKE_LINK_SHLIB        = /opt/rh/devtoolset-7/root/usr/bin/mips64el-redhat-linux-g++

QMAKE_AR                = /opt/rh/devtoolset-7/root/usr/bin/ar cqs
QMAKE_OBJCOPY           = /opt/rh/devtoolset-7/root/usr/bin/objcopy
QMAKE_NM                = /opt/rh/devtoolset-7/root/usr/bin/nm -P
QMAKE_STRIP             = /opt/rh/devtoolset-7/root/usr/bin/strip

#TODO: Clean Qt to work with uclibc not calling itself GLIBC.
#QMAKE_CFLAGS           += -D__FORCE_NOGLIBC
#QMAKE_CXXFLAGS         += -D__FORCE_NOGLIBC

# 板卡名称在此定义
BRCM_PLATFORM           = 3a4000

# Figure the kind of directfb build used.
BRCM_BUILD_TYPE         = debug
contains(B_REFSW_DEBUG, [Nn]) {
    BRCM_BUILD_TYPE     = release
}

QMAKE_INCDIR_OPENGL_ES2 = $${BRCM_ROCKFORD_PATH}/middleware/v3d/interface/khronos/include
QMAKE_LIBDIR_OPENGL_ES2 = $${BRCM_ROCKFORD_PATH}/middleware/v3d/lib_$${BRCM_PLATFORM}_$${BRCM_BUILD_TYPE}
QMAKE_LIBS_OPENGL_ES2   = -lv3ddriver -lrt
QMAKE_LIBS_EGL          =

QMAKE_INCDIR_POST      += $${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3
QMAKE_LIBDIR_POST      += $${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3
QMAKE_RPATHLINKDIR_POST += $$QMAKE_LIBDIR_OPENGL_ES2 $${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3

# DirectFB platform hooks for this hardware
QT_CONFIG              += directfb_egl egl
DIRECTFB_PLATFORM_HOOKS_SOURCES = $$PWD/qdirectfbeglhooks_bcm97425.cpp
DIRECTFB_PLATFORM_HOOKS_INCLUDEPATH = $${BRCM_ROCKFORD_PATH}/middleware/platform/directfb
DIRECTFB_PLATFORM_HOOKS_LIBS = -ldbpl
DIRECTFB_PLATFORM_HOOKS_LIBDIR = $${BRCM_ROCKFORD_PATH}/middleware/platform/directfb/lib_$${BRCM_PLATFORM}_$${BRCM_BUILD_TYPE}

QT_QPA_DEFAULT_PLATFORM = directfbegl

load(qt_config)

configure

然后就是配置生成Makefile

[root@localhost qt-5.15.2] mkdir build && cd build

[root@localhost qt-5.15.2] ../configure -v -device linux-mips64el-4000-g++ \
                          -device-option CROSS_COMPILE=/opt/rh/devtoolset-7/root/usr/bin/  \
                          -opensource -confirm-license -optimized-qmake -reduce-exports \
                          -release -qt-pcre -make libs

make

然后会提示使用make之类的工具进行安装,我这里提示我使用gmake,为了编译快一点,我运行了gmake -j 4

编译通过以后再运行gmake install进行安装,最后会安装在/usr/local/Qt-5.15.2

在其中的bin目录执行./qmake -v可以看到安装成功

在龙芯平台源码安装Qt5.15_第3张图片

配置环境变量

然后配置环境变量以便常用,添加如下两句到用户目录的.bashrc中,对应路径自行修改即可

export LD_LIBRARY_PATH=/usr/local/Qt-5.12.10/lib/:$LD_LIBRARY_PATH
export PATH=/usr/local/Qt-5.12.10/bin:$PATH

然后在任何地方都可以使用了

在龙芯平台源码安装Qt5.15_第4张图片

完成

如果要尝试qtcreator的话,本机自带是:

在龙芯平台源码安装Qt5.15_第5张图片

我不太懂Qt,这个版本的关系不太清楚,不过在设置Kit的时候是可以编译的

在龙芯平台源码安装Qt5.15_第6张图片

然后随便编译一个,效果如下:

在龙芯平台源码安装Qt5.15_第7张图片

参考链接

在树梅派上构建Qt本机版本

你可能感兴趣的:(龙芯,龙芯,Qt,源码编译,5.15)