事先安装好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 文件系统里做实验!