嵌入式Linux--交叉编译安装Qt5.12.9

事先安装好tslib

下载Qt5.12.9源码

 在Qt下载地址https://download.qt.io/找到https://download.qt.io/archive/qt/5.12/5.12.9/single/,进入下载页面如下。
在这里插入图片描述
 在 Ubuntu 使用 wget 指令下载 qt-everywhere-src-5.12.9.tar.xz 源码如下。如果觉得慢,就在Windows 下复制下载链接地址使用迅雷下载再拷贝到 Ubuntu 虚拟机吧!

wget https://download.qt.io/archive/qt/5.12/5.12.9/single/qt-everywhere-src-5.12.9.tar.xz

 解压下载好的 qt-everywhere-src-5.12.9.tar.xz 源码压缩包。解压时间较长,不是卡住了!

tar xf qt-everywhere-src-5.12.9.tar.xz

 在当前目录出现 qt-everywhere-src-5.12.9 目录夹,此文件夹就是我们解压后的目录。进入此目录。

cd qt-everywhere-src-5.12.9/
ls
liefyuan@ubuntu:~/linux/OriginFiles/qt-everywhere-src-5.12.9$ ls
_clang-format                 qtconnectivity      qtsensors
coin                          qtdatavis3d         qtserialbus
configure                     qtdeclarative       qtserialport
configure.bat                 qtdoc               qtspeech
configure.json                qtgamepad           qtsvg
gnuwin32                      qtgraphicaleffects  qttools
LICENSE.FDL                   qtimageformats      qttranslations
LICENSE.GPLv2                 qtlocation          qtvirtualkeyboard
LICENSE.GPLv3                 qtmacextras         qtwayland
LICENSE.LGPLv21               qtmultimedia        qtwebchannel
LICENSE.LGPLv3                qtnetworkauth       qtwebengine
LICENSE.QT-LICENSE-AGREEMENT  qt.pro              qtwebglplugin
qt3d                          qtpurchasing        qtwebsockets
qtactiveqt                    qtquickcontrols     qtwebview
qtandroidextras               qtquickcontrols2    qtwinextras
qtbase                        qtremoteobjects     qtx11extras
qtcanvas3d                    qtscript            qtxmlpatterns
qtcharts                      qtscxml             README

修改 qmake.conf

 编辑 mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf,配置相关编译器及路径。由于用户经常复制文档错误,指的是格式或者手敲错误。所以编者将这些配置上传到 gitee 上,提供给用户下载。
路径如下:https://gitee.com/QQ1252699831/qt5.12.9-conf.git。可以直接在 gitee 上下载这个 qmake.conf。

vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

修改成如下,红色加粗部分就是要修改的地方。

#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG            += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS += -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard
QMAKE_CXXFLAGS += -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard

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

# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabihf-gcc
QMAKE_CXX = arm-linux-gnueabihf-g++
QMAKE_LINK = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++

# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_NM = arm-linux-gnueabihf-nm -P
QMAKE_STRIP = arm-linux-gnueabihf-strip
load(qt_config)

上面还是不得行报错:

liefyuan@ubuntu:~/linux/OriginFiles/qt-everywhere-src-5.12.9$ sudo ./autoconfigure.sh 
+ cd qtbase
+ /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/configure -top-level -prefix /opt/qt5.12.9-arm -opensource -confirm-license -release -strip -shared -xplatform linux-arm-gnueabi-g++ -optimized-qmake -c++std c++11 --rpath=no -pch -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtmacextras -skip qtnetworkauth -skip qtpurchasing -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtspeech -skip qtsvg -skip qttools -skip qttranslations -skip qtwayland -skip qtwebengine -skip qtwebview -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -make libs -make examples -nomake tools -nomake tests -gui -widgets -dbus-runtime --glib=no --iconv=no --pcre=qt --zlib=qt -no-openssl --freetype=qt --harfbuzz=qt -no-opengl -linuxfb --xcb=no -tslib --libpng=qt --libjpeg=qt --sqlite=qt -plugin-sql-sqlite -I/opt/tslib/include -L/opt/tslib/lib -recheck-all
Creating qmake...
.Done.
Project ERROR: Cannot run target compiler 'arm-linux-gnueabihf-g++ -lts'. Output:
===================
===================
Maybe you forgot to setup the environment?

只好改成:

#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS += -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard
QMAKE_CXXFLAGS += -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard

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

# modifications to g++.conf
QMAKE_CC                = /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
QMAKE_CXX               = /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK              = /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB        = /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++

# modifications to linux.conf
QMAKE_AR                = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY           = arm-linux-gnueabihf-objcopy
QMAKE_NM                = arm-linux-gnueabihf-nm -P
QMAKE_STRIP             = arm-linux-gnueabihf-strip
load(qt_config)

然后就配置成功了:

liefyuan@ubuntu:~/linux/OriginFiles/qt-everywhere-src-5.12.9$ sudo ./autoconfigure.sh 
+ cd qtbase
+ /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/configure -top-level -prefix /opt/qt5.12.9-arm -opensource -confirm-license -release -strip -shared -xplatform linux-arm-gnueabi-g++ -optimized-qmake -c++std c++11 --rpath=no -pch -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtmacextras -skip qtnetworkauth -skip qtpurchasing -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtspeech -skip qtsvg -skip qttools -skip qttranslations -skip qtwayland -skip qtwebengine -skip qtwebview -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -make libs -make examples -nomake tools -nomake tests -gui -widgets -dbus-runtime --glib=no --iconv=no --pcre=qt --zlib=qt -no-openssl --freetype=qt --harfbuzz=qt -no-opengl -linuxfb --xcb=no -tslib --libpng=qt --libjpeg=qt --sqlite=qt -plugin-sql-sqlite -I/opt/tslib/include -L/opt/tslib/lib -recheck-all
Creating qmake...
.Done.
Info: creating stash file /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/.qmake.stash

This is the Qt Open Source Edition.

You have already accepted the terms of the Open Source license.

Running configuration tests...
Checking for gold linker... no
Checking for machine tuple... yes
Checking for valid makespec... yes
Checking for target architecture... arm
Checking for host architecture... x86_64
Checking for alloca() in alloca.h... yes
Checking for C99 support... yes
Checking for C11 support... yes
Checking for new dtags support... yes
Checking for pkg-config... no
Checking for D-Bus >= 1.2 (host)... yes
Checking for udev... no
Checking for POSIX fallocate()... yes
Checking for precompiled header support... yes
Checking for RDRAND instruction... no
Checking for symbol visibility support... yes
Checking for -Bsymbolic-functions support... no
Checking for STL compatibility... yes
Checking for clock_gettime()... yes
Checking for POSIX monotonic clock... yes
Checking for C++11 <future>... yes
Checking for dlopen()... yes
Checking for eventfd... yes
Checking for futimens()... yes
Checking for getauxval()... yes
Checking for getentropy()... no
Checking for GNU libc... yes
Checking for ICU... no
Checking for inotify... yes
Checking for SysV IPC... yes
Checking for linkat()... yes
Checking for ppoll()... yes
Checking for renameat2()... no
Checking for slog2... no
Checking for statx() in libc... no
Checking for 64 bit atomics... yes
Checking for DoubleConversion... no
Checking for O_CLOEXEC... yes
Checking for C++11 <random>... yes
Checking for working std::atomic for function pointers... yes
Checking for getifaddrs()... yes
Checking for IPv6 ifname... yes
Checking for Linux AF_NETLINK sockets... yes
Checking for KMS... no
Checking for OpenVG... no
Checking for evdev... yes
Checking for GBM... no
Checking for LinuxFB... yes
Checking for mtdev... no
Checking for default QPA platform... linuxfb
Checking for tslib... yes
Checking for Vulkan... no
Checking for XLib... no
Checking for xkbcommon >= 0.5.0... no
Checking for CUPS... no
Checking for DB2 (IBM)... no
Checking for InterBase... no
Checking for MySQL... no
Checking for OCI (Oracle)... no
Checking for ODBC... no
Checking for PostgreSQL... no
Checking for SQLite (version 2)... no
Checking for TDS (Sybase)... no
Checking for Socket CAN... yes
Checking for Socket CAN FD... yes
Checking for jasper... no
Checking for mng... no
Checking for tiff... no
Checking for webp... no
Checking for C++14 make_unique()... no
Checking for Direct3D 12... no
Checking for ALSA... no
Checking for GStreamer 1.0... no
Checking for GStreamer 0.10... no
Checking for Video for Linux... yes
Checking for OpenAL... no
Checking for PulseAudio >= 0.9.10... no
Checking for libresourceqt5... no
Done running configuration tests.

Configure summary:

Building on: linux-g++ (x86_64, CPU features: mmx sse sse2)
Building for: linux-arm-gnueabi-g++ (arm, CPU features: neon)
Target compiler: gcc 4.9.4
Configuration: cross_compile compile_examples enable_new_dtags largefile neon precompile_header shared release c++11 concurrent dbus no-pkg-config reduce_exports release_tools stl
Build options:
  Mode ................................... release; optimized tools
  Optimize release build for size ........ no
  Building shared libraries .............. yes
  Using C standard ....................... C11
  Using C++ standard ..................... C++11
  Using ccache ........................... no
  Using gold linker ...................... no
  Using new DTAGS ........................ yes
  Using precompiled headers .............. yes
  Using LTCG ............................. no
  Target compiler supports:
    NEON ................................. yes
  Build parts ............................ libs examples
Qt modules and options:
  Qt Concurrent .......................... yes
  Qt D-Bus ............................... yes
  Qt D-Bus directly linked to libdbus .... no
  Qt Gui ................................. yes
  Qt Network ............................. yes
  Qt Sql ................................. yes
  Qt Testlib ............................. yes
  Qt Widgets ............................. yes
  Qt Xml ................................. yes
Support enabled for:
  Using pkg-config ....................... no
  udev ................................... no
  Using system zlib ...................... no
Qt Core:
  DoubleConversion ....................... yes
    Using system DoubleConversion ........ no
  GLib ................................... no
  iconv .................................. no
  ICU .................................... no
  Tracing backend ........................ <none>
  Logging backends:
    journald ............................. no
    syslog ............................... no
    slog2 ................................ no
  Using system PCRE2 ..................... no
Qt Network:
  getifaddrs() ........................... yes
  IPv6 ifname ............................ yes
  libproxy ............................... no
  Linux AF_NETLINK ....................... yes
  OpenSSL ................................ no
    Qt directly linked to OpenSSL ........ no
  OpenSSL 1.1 ............................ no
  DTLS ................................... no
  SCTP ................................... no
  Use system proxies ..................... yes
Qt Gui:
  Accessibility .......................... yes
  FreeType ............................... yes
    Using system FreeType ................ no
  HarfBuzz ............................... yes
    Using system HarfBuzz ................ no
  Fontconfig ............................. no
  Image formats:
    GIF .................................. yes
    ICO .................................. yes
    JPEG ................................. yes
      Using system libjpeg ............... no
    PNG .................................. yes
      Using system libpng ................ no
  EGL .................................... no
  OpenVG ................................. no
  OpenGL:
    Desktop OpenGL ....................... no
    OpenGL ES 2.0 ........................ no
    OpenGL ES 3.0 ........................ no
    OpenGL ES 3.1 ........................ no
    OpenGL ES 3.2 ........................ no
  Vulkan ................................. no
  Session Management ..................... yes
Features used by QPA backends:
  evdev .................................. yes
  libinput ............................... no
  INTEGRITY HID .......................... no
  mtdev .................................. no
  tslib .................................. yes
  xkbcommon .............................. no
  X11 specific:
    XLib ................................. no
    XCB Xlib ............................. no
    EGL on X11 ........................... no
QPA backends:
  DirectFB ............................... no
  EGLFS .................................. no
  LinuxFB ................................ yes
  VNC .................................... yes
  Mir client ............................. no
Qt Sql:
  SQL item models ........................ yes
Qt Widgets:
  GTK+ ................................... no
  Styles ................................. Fusion Windows
Qt PrintSupport:
  CUPS ................................... no
Qt Sql Drivers:
  DB2 (IBM) .............................. no
  InterBase .............................. no
  MySql .................................. no
  OCI (Oracle) ........................... no
  ODBC ................................... no
  PostgreSQL ............................. no
  SQLite2 ................................ no
  SQLite ................................. yes
    Using system provided SQLite ......... no
  TDS (Sybase) ........................... no
Qt Testlib:
  Tester for item models ................. yes
Qt SerialBus:
  Socket CAN ............................. yes
  Socket CAN FD .......................... yes
Further Image Formats:
  JasPer ................................. no
  MNG .................................... no
  TIFF ................................... yes
    Using system libtiff ................. no
  WEBP ................................... yes
    Using system libwebp ................. no
Qt QML:
  QML network support .................... yes
  QML debugging and profiling support .... yes
  QML sequence object .................... yes
  QML list model ......................... yes
  QML XML http request ................... yes
  QML Locale ............................. yes
  QML delegate model ..................... yes
Qt Quick:
  Direct3D 12 ............................ no
  AnimatedImage item ..................... yes
  Canvas item ............................ yes
  Support for Qt Quick Designer .......... yes
  Flipable item .......................... yes
  GridView item .......................... yes
  ListView item .......................... yes
  TableView item ......................... yes
  Path support ........................... yes
  PathView item .......................... yes
  Positioner items ....................... yes
  Repeater item .......................... yes
  ShaderEffect item ...................... yes
  Sprite item ............................ yes
Qt Quick Controls 2:
  Styles ................................. Default Fusion Imagine Material Universal
Qt Quick Templates 2:
  Hover support .......................... yes
  Multi-touch support .................... yes
Qt Multimedia:
  ALSA ................................... no
  GStreamer 1.0 .......................... no
  GStreamer 0.10 ......................... no
  Video for Linux ........................ yes
  OpenAL ................................. no
  PulseAudio ............................. no
  Resource Policy (libresourceqt5) ....... no
  Windows Audio Services ................. no
  DirectShow ............................. no
  Windows Media Foundation ............... no

Note: Also available for Linux: linux-clang linux-icc

Note: -optimized-tools is not useful in -release mode.

WARNING: Cross compiling without sysroot. Disabling pkg-config

Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into '/opt/qt5.12.9-arm'.

Prior to reconfiguration, make sure you remove any leftovers from
the previous build.

配置编译选项

 查看编译选项,输入./configure -help 指令,查看可配置选项。

./configure -help

 由于配置较长,按需要编译,编者总结了配置项,写了一个脚本。由于用户经常复制文档错误,指的是 PDF 格式或者手敲错误。所以编者将这些配置上传到 gitee 上,提供给用户下载。路径如下。https://gitee.com/QQ1252699831/qt5.12.9-conf.git。可以直接在 gitee 上下载这个 autoconfigure.sh。下载之后修改里面的路径,改为自己的即可!

vi autoconfigure.sh

 在这个 autoconfigure.sh 添加以下内容。复制时注意,每行前面不要留空格。

./configure -prefix /opt/qt5.12.9-arm \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-c++std c++11 \
--rpath=no \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebengine \
-skip qtwebview \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-make examples \
-nomake tools -nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glib=no \
--iconv=no \
--pcre=qt \
--zlib=qt \
-no-openssl \
--freetype=qt \
--harfbuzz=qt \
-no-opengl \
-linuxfb \
--xcb=no \
-tslib \
--libpng=qt \
--libjpeg=qt \
--sqlite=qt \
-plugin-sql-sqlite \
-I/opt/tslib/include \
-L/opt/tslib/lib \
-recheck-all

其中以下部分为编者个人的路径,请修改成个人路径。

  • (1) /opt/qt5.12.9-arm 为编译输出路径。
  • (2) /opt/tslib/include 为前面安装的 tslib 头文件路径。
  • (3) /opt/tslib/lib 为前面安装的 tslib 相关库文件路径。

赋予脚本可执行权限。

chmod +x autoconfigure.sh

直接执行 autoconfigure.sh。配置需要一段时间,请耐心等待!

sudo apt-get install g++ // 配置前请先安装 g++
./autoconfigure.sh

配置完成如下。若未见此信息,请检查个人配置。切记是使用 Ubuntu16,如果是 Ubuntu18 以上,可能出现 C++11 Error,这是我们正点原子忠实用户粉丝反馈的,粉丝解决方法是出现这种错误后,重新解压一次 Qt 源码,重新配置就不会出现 c++11 Error,特此说明。

开始编译 Qt5.12.9 源码

直接执行 make 开始编译。

time (make -j 16) // -j 16 代表最多允许 16 条编译指令同时运行,参数 16,一般为个人分配给虚拟机的核心数的 2 倍,前面加个 time 是测试编译时间。

 编译时长由个人计算机速度及分配给虚拟机核心数决定(编者编译了 8分钟)。如按上面操作,遇到编译 Qt 源码出现错误,请重新配置!有可能是个人计算机分配给虚拟机内存太低所导致的,既然 Qt 源码能发布,除了配置错误,几乎不可能有编译错误的!经过编者经验和用户反馈,用户编译的时候会出现类似 sub-xx-make-first-ordered 错误。这个原因可能是虚拟机分配的配置太低及用户目录权限的问题。您可以看见编者都是用普通用户在编译的,尽量不要使用 root 用户和 sudo 权限来编译!除非您比较懂。编译完成如下图。

/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -Wl,-O1 -Wl,--enable-new-dtags -o scatterinteractions .obj/chartview.o .obj/main.o .obj/moc_chartview.o   -L/opt/tslib/lib /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/lib/libQt5Charts.so /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/lib/libQt5Widgets.so /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/lib/libQt5Gui.so /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/lib/libQt5Core.so -lpthread   
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -Wl,-O1 -Wl,--enable-new-dtags -o piechartcustomization .obj/brushtool.o .obj/customslice.o .obj/main.o .obj/mainwidget.o .obj/pentool.o   -L/opt/tslib/lib /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/lib/libQt5Charts.so /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/lib/libQt5Widgets.so /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/lib/libQt5Gui.so /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/lib/libQt5Core.so -lpthread   
make[4]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/scatterchart'
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -Wl,-O1 -Wl,--enable-new-dtags -o stackedbarchartdrilldown .obj/drilldownchart.o .obj/drilldownseries.o .obj/main.o   -L/opt/tslib/lib /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/lib/libQt5Charts.so /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/lib/libQt5Widgets.so /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/lib/libQt5Gui.so /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/lib/libQt5Core.so -lpthread   
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -Wl,-O1 -Wl,--enable-new-dtags -o datetimeaxis .obj/main.o .obj/qrc_sundata.o   -L/opt/tslib/lib /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/lib/libQt5Charts.so /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/lib/libQt5Widgets.so /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/lib/libQt5Gui.so /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/lib/libQt5Core.so -lpthread   
make[4]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/polarchart'
make[4]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/scatterinteractions'
make[4]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/piechartcustomization'
make[4]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/stackedbarchartdrilldown'
make[4]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/datetimeaxis'
make[3]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts'
make[2]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples'
make[1]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts'

real	8m34.099s
user	54m3.711s
sys	6m13.121s

执行安装指令后

sudo make install
/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/bin/qmake -install qinstall /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/zoomlinechart/chart.h /opt/qt5.12.9-arm/examples/charts/zoomlinechart/chart.h
/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/bin/qmake -install qinstall /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/zoomlinechart/chartview.h /opt/qt5.12.9-arm/examples/charts/zoomlinechart/chartview.h
make[4]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/zoomlinechart'
cd datetimeaxis/ && ( test -e Makefile || /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/bin/qmake -o Makefile /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/datetimeaxis/datetimeaxis.pro ) && make -f Makefile install
make[4]: Entering directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/datetimeaxis'
/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/bin/qmake -install qinstall -exe datetimeaxis /opt/qt5.12.9-arm/examples/charts/datetimeaxis/datetimeaxis
arm-linux-gnueabihf-strip /opt/qt5.12.9-arm/examples/charts/datetimeaxis/datetimeaxis
make[4]: arm-linux-gnueabihf-strip:命令未找到
Makefile:773: recipe for target 'install_target' failed
make[4]: [install_target] Error 127 (ignored)
/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/bin/qmake -install qinstall /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/datetimeaxis/sun_spots.txt /opt/qt5.12.9-arm/examples/charts/datetimeaxis/sun_spots.txt
/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/bin/qmake -install qinstall /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/datetimeaxis/datetimeaxis.pro /opt/qt5.12.9-arm/examples/charts/datetimeaxis/datetimeaxis.pro
/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/bin/qmake -install qinstall /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/datetimeaxis/main.cpp /opt/qt5.12.9-arm/examples/charts/datetimeaxis/main.cpp
/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/bin/qmake -install qinstall /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/datetimeaxis/sundata.qrc /opt/qt5.12.9-arm/examples/charts/datetimeaxis/sundata.qrc
make[4]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/datetimeaxis'
/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtbase/bin/qmake -install qinstall /home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts/charts.pro /opt/qt5.12.9-arm/examples/charts/charts.pro
make[3]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples/charts'
make[2]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts/examples'
make[1]: Leaving directory '/home/liefyuan/linux/OriginFiles/qt-everywhere-src-5.12.9/qtcharts'

安装完成后查看安装的文件夹

liefyuan@ubuntu:~/linux/OriginFiles/qt-everywhere-src-5.12.9$ ls /opt/qt5.12.9-arm
bin  doc  examples  include  lib  mkspecs  plugins  qml

移植Qt到文件系统

 上面我们终于编译好了 tslib 和 Qt 源码。我们需要移植这些库都开发板系统上才能运行 Qt应用程序!这里特别说明一下。因为正点原子的出厂系统自带 Qt 库和 tslib,是不需要额外移植了。不能将自己编译的 Qt 库移植到出厂系统下!因为如果您不了解出厂系统的环境,就会导致移植的 Qt 库与出厂的 Qt 冲突!导致报错!所以我们需要移植到一个没有 Qt 库的文件系统里。正点原子 Linux 驱动指南里有编译好的 busybox 文件系统。刚好这个文件系统没有 Qt 库,所以我们直接移植到这个 busybox 文件系统里做实验!

移植tslib到文件系统

移植Qt到文件系统

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值