Qt-5.4.2在FS4412上的移植
時間:2018-09-29 來源:未知
1 開發(fā)環(huán)境
目標板:FS4412
交叉編譯工具鏈:arm-arm1176jzfssf-linux-gnueabi 4.6.4
Qt:qt-everywhere-opensource-src-5.4.2.tar.xz
Linux:Ubuntu 12.04 32位
2 Qt源碼配置、編譯及安裝
在Linux系統(tǒng)下,桌面或圖形界面程序本質上只是一個應用程序而已。Qt作為一個能夠在Linux系統(tǒng)下運行的圖形庫,對它的移植和一般的應用程序的移植并無太多不同,所經過的步驟通常是下載源碼,解壓源碼,配置源碼,編譯源碼和安裝等步驟。下面對這些步驟一一進行詳細的說明。
Qt的新源碼可以在官網上下載,這里以5.4.2的版本為例,其下載地址為//download.qt.io/official_releases/qt/5.4/5.4.2/single/qt-everywhere-opensource-src-5.4.2.tar.xz。壓縮包有多種格式可選,推薦下載xz格式的壓縮包,其壓縮比較高。可以在網頁上直接點擊下載,也可以通過下面的命令下載。
$ wget -c //download.qt.io/official_releases/qt/5.4/5.4.2/single/qt-everywhere-opensource-src-5.4.2.tar.xz
源碼下載完成后,使用下面的命令對源碼包進行解壓。
$ tar -xvf qt-everywhere-opensource-src-5.4.2.tar.xz
解壓完成后,使用下面的命令進入到源碼目錄并查看源碼配置的幫助信息。
$ cd qt-everywhere-opensource-src-5.4.2/
$ ./configure -help
Qt的配置項有很多,在幫助信息前加“*”的項為默認選項,加“+”的項為評估選項,如果評估成功,那么該功能將被包含。下面將這些配置項的含義一一列出。
-prefix <dir>:安裝路徑,默認的路徑為/usr/local/Qt-5.4.2。
-extprefix <dir>:如果使用了-sysroot選項,那么安裝路徑為指定的<dir>。
-hostprefix [dir]:指定可擴展的工具庫安裝路徑,默認當前目錄。
-bindir <dir>:用戶的可執(zhí)行程序安裝路徑。
-headerdir <dir>:頭文件安裝路徑。
-libdir <dir>:庫文件安裝路徑。
-archdatadir <dir>:平臺依賴的數(shù)據(jù)安裝路徑。
-plugindir <dir>:插件安裝路徑。
-libexecdir <dir>:可執(zhí)行程序安裝路徑。
-importdir <dir>:QML1安裝路徑。
-qmldir <dir>:QML2安裝路徑。
-datadir <dir>:平臺無關數(shù)據(jù)安裝路徑。
-docdir <dir>:文檔安裝路徑。
-translationdir <dir>:翻譯文件安裝路徑。
-sysconfdir <dir>:配置文件的搜索路徑。
-examplesdir <dir>:示例程序安裝路徑。
-testsdir <dir>:測試程序安裝路徑。
-hostbindir <dir>:主機可執(zhí)行程序安裝路徑。
-hostlibdir <dir>:主機庫安裝路徑。
-hostdatadir <dir>:qmake使用的數(shù)據(jù)安裝路徑。
-release:編譯和鏈接時關閉調試選項,默認選項。
-debug:編譯和鏈接時打開調試選項。
-debug-and-release:生成調試和不調試的兩個版本。
-force-debug-info:在非調試的版本中強制創(chuàng)建符號文件。
-developer-build:編譯和鏈接時加入開發(fā)者的一些選項。
-opensource:構建Qt的開源版本。
-commercial:構建Qt的商業(yè)版本。
-confirm-license:自動確認許可證。
-no-c++11:不要開啟c++11的支持。
-c++11:開啟c++11的支持,評估選項。
-shared:使用共享的Qt庫,默認選項。
-static:使用靜態(tài)的Qt庫。
-no-largefile:不支持大文件的訪問。
-largefile:支持大于4G的文件訪問,評估選項。
-no-accessibility:不要開啟Accessibility支持,不推薦設置該選項。
-accessibility:開啟Accessibility支持,評估選項。
-no-sql-<driver>:禁止SQL <driver>。
-qt-sql-<driver>:使能在Qt SQL 模塊中的SQL <driver>。
-plugin-sql-<driver>:將SQL <driver>作為一個運行時的插件。
-system-sqlite:使用系統(tǒng)體統(tǒng)的sqlite。
-no-qml-debug:不要編譯in-process QML調試支持。
-qml-debug:編譯in-process QML調試支持,評估選項。
-platform target:構建的目標操作系統(tǒng)及編譯器。
-no-sse2:不要用SSE2指令集編譯。
-no-sse3:不要用SSE3指令集編譯。
-no-ssse3:不要用SSSE3指令集編譯。
-no-sse4.1:不要用SSE4.1指令集編譯。
-no-sse4.2:不要用SSE4.2指令集編譯。
-no-avx:不要用AVX指令集編譯。
-no-avx2:不要用AVX2指令集編譯。
-no-mips_dsp:不要用MIPS DSP指令集編譯。
-no-mips_dspr2:不要用MIPS DSP rev2指令集編譯。
-qtnamespace <name>:將所有的Qt庫包裹在<name>命名空間。
-qtlibinfix <infix>:將所有的libQt*.so命名為libQt*<infix>.so。
-testcocoon:用TestCocoon代碼覆蓋測試工具檢測Qt代碼。
-gcov:用GCov代碼覆蓋測試工具檢測Qt代碼。
-D <string>:添加預處理定義。
-I <string>:添加包含路徑。
-L <string>:添加庫路徑。
-pkg-config:使用pkg-config來檢測包含路徑和庫路徑,評估選項。
-no-pkg-config:不使用pkg-config。
-force-pkg-config:強制使用pkg-config。
-help, -h:顯示幫助信息。
-qt-zlib:使用zlib庫。
-system-zlib:使用系統(tǒng)的zlib庫,評估選項。
-no-mtdev:不支持mtdev。
-mtdev:支持mtdev,評估選項。
-no-journald:不發(fā)送日志給journald,評估選項。
-journald:發(fā)送日志給journald。
-no-gif:不支持GIF。
-no-libpng:不支持PNG。
-qt-libpng:使用Qt的libpng庫。
-system-libpng:使用系統(tǒng)的libpng庫,評估選項。
-no-libjpeg:不支持JPEG。
-qt-libjpeg:使用Qt的libjpeg庫。
-system-libjpeg:使用系統(tǒng)的libjpeg庫,評估選項。
-no-freetype:不支持Freetype2。
-qt-freetype:使用Qt的libfreetype庫。
-system-freetype:使用系統(tǒng)的libfreetype庫,評估選項。
-no-harfbuzz:不支持HarfBuzz-NG。
-qt-harfbuzz:使用Qt的HarfBuzz-NG,默認選項。
-system-harfbuzz:使用系統(tǒng)的HarfBuzz-NG。
-no-openssl:不支持OpenSSL。
-openssl:使能OpenSSL的運行時支持,評估選項。
-openssl-linked:使能OpenSSL的支持。
-qt-pcre:使用Qt的PCRE庫。
-system-pcre:使用系統(tǒng)的PCRE庫,評估選項。
-qt-xcb:使用Qt的xcb-庫。
-system-xcb:使用系統(tǒng)的xcb-庫,評估選項。
-xkb-config-root:設置默認的XKB配置根目錄。
-qt-xkbcommon:使用Qt的xkbcommon庫。
-system-xkbcommon:使用系統(tǒng)的xkbcommon庫,評估選項。
-no-xinput2:不支持XInput2。
-xinput2:支持XInput2,默認選項。
-no-xcb-xlib不支持Xcb-Xlib。
-xcb-xlib:支持Xcb-Xlib,默認選項。
-no-glib:不支持Glib:
-glib:支持Glib,評估選項。
-no-pulseaudio:不支持PulseAudio。
-pulseaudio:支持PulseAudio,評估選項。
-no-alsa:不支持ALSA。
-alsa:支持ALSA support,評估選項。
-no-gtkstyle:不支持GTK主題。
-gtkstyle:支持 GTK主題,評估選項。
-make <part>:指定添加需要編譯的<part>。
-nomake <part>:指定不需要編譯的<part>。
-skip <module>:指定不需要編譯的整個<module>。
-no-compile-examples:僅僅安裝示例的源碼。
-no-gui:不編譯Qt的GUI和相關的依賴。
-gui:編譯Qt的GUI和相關的依賴,評估選項。
-no-widgets:不編譯Qt的窗口部件和依賴。
-widgets:編譯Qt的窗口部件和依賴,評估選項。
-R <string>:顯式添加庫路徑。
-l <string>:顯式添加庫。
-no-rpath:不使用庫的安裝路徑作為運行時庫路徑。
-rpath:使用庫的安裝路徑作為運行時庫路徑,評估選項。
-continue:如果錯誤發(fā)生后,編譯過程盡可能持續(xù)下去。
-verbose, -v:打印出詳細的配置過程。
-silent:減少編譯輸出,以便能更好發(fā)現(xiàn)編譯的警告和錯誤。
-no-optimized-qmake:不要優(yōu)化qmake,默認選項。
-optimized-qmake:優(yōu)化qmake。
-no-nis:不支持 NIS 。
-nis:支持NIS,默認選項。
-no-cups:不支持CUPS。
-cups:支持,默認選項。
-no-iconv:不支持iconv(3).
-iconv:支持iconv(3) ,默認選項。
-no-evdev:不支持evdev。
-evdev:支持evdev,默認選項。
-no-icu:不支持ICU庫
-icu:支持ICU庫,默認選項。
-no-fontconfig:不支持FontConfig。
-fontconfig:支持FontConfig,默認選項。
-no-strip:不裁剪二進制程序和庫。
-strip:裁剪二進制程序和庫,默認選項。
-no-pch:不使用預編譯頭,默認選項。
-pch:使用預編譯頭。
-no-dbus:不編譯Qt D-Bus模塊。
-dbus:編譯Qt D-Bus模塊,評估選項。
-dbus-linked:編譯Qt D-Bus模塊并鏈接到libdbus-1.
-reduce-relocations:通過額外的鏈接器優(yōu)化選項減少庫中的重定位。
-no-use-gold-linker:不使用GNU gold鏈接器。
-use-gold-linker:使用GNU gold鏈接器,評估選項。
-force-asserts:強制使能Q_ASSERT,即便是release版本。
-device <name>:交叉編譯設備的名字。
-device-option <key=value>:添加設備特定的選項。
-no-separate-debug-info:不要把調試信息存在單獨的文件中,默認選項。
-separate-debug-info:把調試信息存在單獨的文件中。
-no-xcb:不支持 Xcb。
-xcb:支持 Xcb,默認選項。
-no-eglfs:不支持EGLFS。
-eglfs:支持EGLFS,默認選項。
-no-directfb:不支持DirectFB。
-directfb:支持DirectFB,默認選項。
-no-linuxfb:不支持Linux幀緩存。
-linuxfb:支持Linux幀緩存,默認選項。
-no-kms:不支持KMS。
-kms:支持KMS,默認選項。
-qpa <name>:設置默認的QPA平臺。
-xplatform target:交叉編譯時指定目標平臺。
-sysroot <dir>:將<dir>作為目標的編譯器和qmake的sysroot,并且設置pkg-config paths路徑。
-no-gcc-sysroot:當使用-sysroot選項, 禁止將—sysroot傳給編譯器。
-no-feature-<feature>:不要編譯<feature>。
-feature-<feature>:編譯<feature>。 可用的特性在src/corelib/global/qfeatures.txt中查找。
-qconfig local:使用src/corelib/global/qconfig-local.h頭文件。
-qreal [double|float]: 指定qreal的類型,默認是double。
-no-opengl:不支持OpenGL。
-opengl <api>:支持OpenGL。
-no-system-proxies:不使用系統(tǒng)的網絡代理,默認選項。
-system-proxies:使用系統(tǒng)的網絡代理。
-no-warnings-are-errors:正常處理警告。
-warnings-are-errors:將警告視為錯誤。
除了以上的選項而外,還有一些針對特定系統(tǒng)的專有選項,這些選擇在Linux系統(tǒng)上無效,所以不再一一列舉。
使用以下的命令拷貝一份qmake的配置文件,然后編輯新拷貝的配置文件。
$ cp -a qtbase/mkspecs/linux-arm-gnueabi-g++/ qtbase/mkspecs/linux-arm-g++/
$ vim qtbase/mkspecs/linux-arm-g++/qmake.conf
將配置文件中所有的arm-linux-gnueabi都替換為arm-linux。
#
# qmake configuration for building with arm-linux-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)
# modifications to g++.conf
QMAKE_CC = arm-linux-gcc
QMAKE_CXX = arm-linux-g++
QMAKE_LINK = arm-linux-g++
QMAKE_LINK_SHLIB = arm-linux-g++
# modifications to linux.conf
QMAKE_AR = arm-linux-ar cqs
QMAKE_OBJCOPY = arm-linux-objcopy
QMAKE_NM = arm-linux-nm -P
QMAKE_STRIP = arm-linux-strip
load(qt_config)
編輯一個自動配置的腳本文件(如config.sh)存放在源碼頂層目錄下,并添加可執(zhí)行權限。腳本文件的內容如下:
#!/bin/bash
./configure -release \
-opensource \
-confirm-license \
-qt-sql-sqlite \
-no-sse2 \
-no-sse3 \
-no-ssse3 \
-no-sse4.1 \
-no-sse4.2 \
-no-avx \
-no-avx2 \
-no-mips_dsp \
-no-mips_dspr2 \
-no-pkg-config \
-qt-zlib \
-qt-libpng \
-qt-libjpeg \
-qt-freetype \
-no-openssl \
-qt-pcre \
-qt-xkbcommon \
-no-glib \
-nomake examples \
-nomake tools \
-nomake tests \
-no-cups \
-no-iconv \
-no-dbus \
-xplatform linux-arm-g++ \
-no-use-gold-linker \
-qreal float
exit
從腳本文件的內容可知,腳本主要是運行了配置命令并設置了一些配置選項,這些選項的意義可以參考前面的說明。一般來說,初次進行移植時,有些選項可能設置不正確導致配置不通過,或配置通過并編譯完成后運行時出現(xiàn)問題。那么這就需要根據(jù)錯誤提示對配置進行適當?shù)男薷摹>帉懪渲媚_本的其中一個目的也是為了便于修改。配置文件編寫好,并添加可執(zhí)行權限后,使用下面的命令對Qt源碼進行配置。
$ ./config.sh
配置成功后會打印配置的匯總信息,如下所示:
Configure summary
Building on: linux-g++ (i386, CPU features: none detected)
Building for: linux-arm-g++ (arm, CPU features: none detected)
Platform notes:
- Also available for Linux: linux-kcc linux-icc linux-cxx
Build options:
Configuration .......... accessibility audio-backend c++11 clock-gettime clock-monotonic compile_examples concurrent
cross_compile evdev eventfd freetype full-config getaddrinfo getifaddrs harfbuzz inotify ipv6ifname large-config largefile linuxfb
medium-config minimal-config mremap nis no-pkg-config pcre png posix_fallocate precompile_header qpa qpa reduce_exports release
rpath shared small-config zlib
Build parts ............ libs
Mode ................... release
Using C++11 ............ yes
Using gold linker....... no
Using PCH .............. yes
Target compiler supports:
Neon ................. no
Qt modules and options:
Qt D-Bus ............... no
Qt Concurrent .......... yes
Qt GUI ................. yes
Qt Widgets ............. yes
Large File ............. yes
QML debugging .......... yes
Use system proxies ..... no
Support enabled for:
Accessibility .......... yes
ALSA ................... no
CUPS ................... no
Evdev .................. yes
FontConfig ............. no
FreeType ............... qt
Glib ................... no
GTK theme .............. no
HarfBuzz ............... yes (bundled copy)
Iconv .................. no
ICU .................... no
Image formats:
GIF .................. yes (plugin, using bundled copy)
JPEG ................. yes (plugin, using bundled copy)
PNG .................. yes (in QtGui, using bundled copy)
journald ............... no
mtdev .................. no
Networking:
getaddrinfo .......... yes
getifaddrs ........... yes
IPv6 ifname .......... yes
OpenSSL .............. no
NIS .................... yes
OpenGL / OpenVG:
EGL .................. no
OpenGL ............... no
OpenVG ............... no
PCRE ................... yes (bundled copy)
pkg-config ............. no
PulseAudio ............. no
QPA backends:
DirectFB ............. no
EGLFS ................ no
KMS .................. no
LinuxFB .............. yes
XCB .................. no
Session management ..... yes
SQL drivers:
DB2 .................. no
InterBase ............ no
MySQL ................ no
OCI .................. no
ODBC ................. no
PostgreSQL ........... no
SQLite 2 ............. no
SQLite ............... qt-qt
TDS .................. no
udev ................... no
xkbcommon .............. no
zlib ................... yes (bundled copy)
Info: creating super cache file /home/kevin/Workspace/fs4412/others/Qt/qt-everywhere-opensource-src-5.4.2/.qmake.super
Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into /usr/local/Qt-5.4.2
Prior to reconfiguration, make sure you remove any leftovers from
the previous build.
通過查看該匯總信息,Qt的功能模塊的選擇情況將會一目了然。配置完成后,沒有警告和錯誤,就可以運行下面的命令進行編譯和安裝(編譯的時間比較長)。
$ make
$ sudo make install
因為沒有在配置中指定安裝路徑,所有使用的是默認的安裝路徑,即為/usr/local/Qt-5.4.2/。安裝成功后,在該目錄下將會產生如下目錄:
$ ls /usr/local/Qt-5.4.2/
bin doc imports include lib mkspecs plugins qml translations
3在根文件系統(tǒng)中添加Qt
首先進入到根文件系統(tǒng)的目錄,將安裝好的Qt目錄下的所有內容拷貝到根文件系統(tǒng)中,使用如下的命令:
$ cd /nfs/rootfs
$ mkdir usr/local/
$ cp -a /usr/local/Qt-5.4.2/ usr/local/
然后編輯etc目錄下的profile文件,添加如下的內容:
export QTDIR=/usr/local/Qt-5.4.2
export QT_QPA_FONTDIR=$QTDIR/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=1024x600:tty=/dev/ttySAC2
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH$QTDIR:$QTDIR/lib
其中QT_QPA_FONTDIR環(huán)境變量用于指定字體的路徑,QT_QPA_PLATFORM_PLUGIN_PATH環(huán)境變量用于指定插件的路徑,QT_QPA_PLATFORM環(huán)境變量用于指定Qt的運行平臺,這里是linuxfb,表示基于Linux的幀緩存,fb用于指定幀緩存設備,size用于指定顯示設備以像素為單位的寬高,而tty用于指定非
GUI程序使用的tty。這個環(huán)境變量中的項目需要根據(jù)實際情況進行修改。
4 安裝Qt集成開發(fā)環(huán)境
Qt集成開發(fā)環(huán)境可以在官網上進行下載,鏈接地址為//download.qt.io/official_releases/qt/,在網頁中選擇需要的版本點擊下載即可。這里以Linux下的5.4.2的32位版本為例,其下載地址為//mirrors.ustc.edu.cn/qtproject/archive/qt/5.4/5.4.2/qt-opensource-linux-x86-5.4.2.run。可以在網頁上直接點擊進行下載,也可以通過下面的命令進行下載。
$ wget -c //mirrors.ustc.edu.cn/qtproject/archive/qt/5.4/5.4.2/qt-opensource-linux-x86-5.4.2.run
下載完成后,添加可執(zhí)行權限并執(zhí)行安裝程序,使用下面的命令。
$ chmod u+x qt-opensource-linux-x86-5.4.2.run
$ ./qt-opensource-linux-x86-5.4.2.run
程序運行后首先彈出下面的界面,點擊Next進行安裝。

圖1 Qt安裝界面1
接下來選擇安裝的路徑,通常使用默認路徑即可。

圖2 Qt安裝界面2
然后選擇功能組件,保持默認,即全部選擇。

圖3 Qt安裝界面3
然后是許可證協(xié)議的確認,選擇上面的那個,表示同意。

圖4 Qt安裝界面4
然后是確認安裝,點擊Install即可。

圖5 Qt安裝界面5
后點擊Finish完成安裝。

圖6 Qt安裝界面6
在編譯Qt代碼時可能出現(xiàn)“error: GL/gl.h: No such file or directory”的錯誤,需要使用下面的命令來安裝相應的庫。
$ sudo apt-get install libqt4-dev
5 添加ARM平臺的構建環(huán)境
Qt集成開發(fā)環(huán)境安裝好后,默認只有PC機上的構建環(huán)境,需要手動添加 ARM平臺上的構建環(huán)境,添加的步驟如下。
在集成開發(fā)環(huán)境中選擇Tools->Options子菜單。

圖7 添加ARM平臺構建環(huán)境步驟1
在彈出的對話框中點擊Add按鈕。

圖8 添加ARM平臺構建環(huán)境步驟2
在彈出的對話框中選擇Qt移植后安裝路徑中的qmake工具,然后點擊Open按鈕。

圖9 添加ARM平臺構建環(huán)境步驟3
然后點擊Apply按鈕。

圖10 添加ARM平臺構建環(huán)境步驟4
接下來選擇交叉編譯工具,在剛才的對話框中選擇Compilers選項卡,然后點擊Add按鈕。

圖11 添加ARM平臺構建環(huán)境步驟5
在彈出的對話框中選擇交叉編譯工具中的arm-linux-c++工具。

圖12 添加ARM平臺構建環(huán)境步驟6
選擇好后給該編譯器設置一個名字,然后點擊Apply按鈕。

圖13 添加ARM平臺構建環(huán)境步驟7
接下來添加構建套件,在剛才的對話框中選擇Kits選項卡,然后點擊Add按鈕。

圖14 添加ARM平臺構建環(huán)境步驟8
然后按照下圖進行設置。

圖15 添加ARM平臺構建環(huán)境步驟9
設置好后,點擊OK按鈕。
6 編寫并運行Qt測試程序
經過前面的步驟后,Qt移植完成,集成開發(fā)環(huán)境設置成功。接下來編寫一個測試程序,并且在開發(fā)板上進行測試。
首先要建立一個Qt的工程,在集成開發(fā)環(huán)境中選擇File->New File or Project子菜單。

圖16 新建Qt工程步驟1
在彈出的對話框中按照下圖進行選擇,然后點Choose按鈕。

圖17 新建Qt工程步驟2
接下來設置工程的名稱和路徑。

圖18 新建Qt工程步驟3
接下來選擇構建的套件,注意需要選擇ARM的構建套件。

圖19 新建Qt工程步驟4
接下來設置窗口的類和文件的名稱,保持默認選項即可。

圖20 新建Qt工程步驟5
后,點擊Finish按鈕完成工程的創(chuàng)建。

圖21 新建Qt工程步驟6
編輯UI界面,添加一個Line Edit和一個Push Button,并將Push Button的顯示的名稱改為Clear,將窗口的大小改為1024x600,這樣窗口可以布滿整個顯示屏。接下來為按鈕添加槽函數(shù),右擊按鈕,然后在彈出的菜單中選擇go to slot子菜單即可。

圖22 添加按鈕槽函數(shù)步驟1
在彈出的對話框中選擇clicked,然后點OK按鈕。

圖23 添加按鈕槽函數(shù)步驟2
在自動生成的槽函數(shù)中,添加如下的代碼。
void MainWindow::on_pushButton_clicked()
{
ui->lineEdit->clear();
}
代碼編寫完成后進行保存,然后先選擇PC上的構建套件進行編譯測試,點擊下圖中的三角形按鈕即可運行。

圖24 選擇PC機上的構建套件
程序正常運行的話,會出現(xiàn)一個窗口,在文本框中可以輸入字符,點擊Clear按鈕可以清楚文本框內的字符。

圖25 在PC機上運行程序
測試成功后,在選擇ARM平臺的構建套件。

圖26 選擇ARM構建套件
然后在菜單中選擇Build->Build All,即可完成交叉編譯。

圖27 交叉編譯Qt工程
編譯成功后,在項目的同級目錄下會生成一個build-Test-ARM_Qt_5_4_2_GCC_32bit-Debug目錄,進入到該目錄,并將生成的可執(zhí)行程序拷貝到根文件系統(tǒng)中。使用如下的命令:
$ cd build-Test-ARM_Qt_5_4_2_GCC_32bit-Debug/
$ cp Test /nfs/rootfs/root/
將開發(fā)板接上USB的鼠標和鍵盤,然后上電,使用NFS掛載根文件系統(tǒng),登錄系統(tǒng)后,使用下面的命令運行Qt程序:
# ./Test -plugin evdevmouse:/dev/input/event1 -plugin evdevkeyboard:/dev/input/event2
開發(fā)板上運行的程序功能將會和剛才在PC機上運行的程序功能一樣。在命令行中通過evdevmouse指定了鼠標設備,通過evdevkeyboard指定了鍵盤設備。這些設備的路徑需要根據(jù)系統(tǒng)的實際情況而定。

