1. 程式人生 > >Qt 5.5.0-成功移植到TQ210

Qt 5.5.0-成功移植到TQ210

轉載地址:http://tieba.baidu.com/p/3996410074

一、需要準備的資源下載連結地址:

1、ubuntu-14.04.3-desktop-amd64+mac.iso:
http://cdimage.ubuntu.com/releases/
2、qt-everywhere-opensource-src-5.5.0.tar.gz:
http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/
3、最新交叉編譯器下載地址(本人使用的是天嵌提供的編譯器:arm-linux-gcc:4.4.6 (for TQ210 EmbedSky Tech)):http://www.veryarm.com/arm-none-linux-gnueabi-gcc

4、Ubuntu-14.04下安裝:qt-opensource-linux-x64-android-5.5.0-2.run的下載地址:
http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/
5、安裝tslib——下載地址: http://sourceforge.net/projects/tslib.berlios/files/
宣告——參見網友的友情連結地址:移植Qt-5.5.0到ARM Cortex-A8:
http://blog.csdn.net/clannadzy/article/details/46896425
Qt5.5.0編譯移植到Linux-Arm-A9:http://www.bubuko.com/infodetail-951000.html

移植qt5.3.1到arm:
http://blog.csdn.net/zhx6044/article/details/38373687

第一個需解決的問題——安裝教程編譯環境後的問題:交叉編譯器的問題(Ubuntu-14.04-64位)
安裝天嵌交叉編譯環境參見天嵌的手持
[email protected]:/work#arm-linux-gcc -v
bash: /opt/EmbedSky/4.4.6/bin/arm-linux-gcc: No such file or directory
解決方法:
[email protected]:/work#sudo apt-get install lib32z1

二、配置編譯tslib

網上說的tslib1.4其實就是tslib1.0,這個工具比較小,配置一下後直接編譯就行了。
[email protected]:/work#tar -xvjf tslib-1.0.tar.bz2
[email protected]:/work#cd tslib-1.0
[email protected]:/work/tslib-1.0#./autogen.sh —可能的問題解決方法:(1)、問題
[email protected]:/work/tslib-1.0#./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --prefix=/opt/tslib-1.0
[email protected]:/work/tslib-1.0#make——可能會出現的問題解決方法:(2)、問題
[email protected]:/work/tslib-1.0#make install
(1)、問題:——編譯ts_lib-1.0是出現的問題
./autogen.sh: 4: autoreconf: not found
在不同版本Ubuntu的 tslib 下執行 autogen.sh 產生。它們產生的原因一樣,是
因為沒有安裝automake 工具, (ubuntu 14.04)用下面的命令安裝好就可以了。
[email protected]:/work/tslib-1.0#sudo apt-get install autoconf automake libtool
(2)、問題:——在make時出錯,提示
In function ‘open’,
inlined from ‘main’ at ts_calibrate.c:229:11:
/usr/include/bits/fcntl2.h:51:24: error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments
make[2]: *** [ts_calibrate.o] Error 1
原因:這是因為open函式的語法不符合最新的gcc,
解決方法:在tslib-1.0原始碼包中tests/ts_calibrate.c中加入open的第三個引數:
#vim tests/ts_calibrate.c
if ((calfile = getenv("TSLIB_CALIBFILE")) != NULL) {
cal_fd = open (calfile, O_CREAT | O_RDWR, 0777);
} else {
cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR, 0777);
}
——用自己編譯安裝好的tslib-1.0測試觸控式螢幕:
(1)、修改配置檔案ts.conf
修改/opt/tslib-1.0/etc/ts.conf,去掉module_raw input 前面的#號即可,然後把/opt/tslib-1.0裡的檔案都拷入開發板,比如我放在了/usr/local裡。
——拷貝的方法可以參見:三、5、中的工具使用
(2)、配置開發板的環境變數
配置開發板的環境變數,讓tslib能正常工作。
修改/etc/profile檔案,在新增以下內容:
#vi /etc/profile
export set TSLIB_FBDEVICE=/dev/fb0
export set TSLIB_TSDEVICE=/dev/event3—可能的問題解決方法:(A)、問題
export set TSLIB_CONFFILE=/usr/local/etc/ts.conf
export set TSLIB_CALIBFILE=/etc/pointercal
export set TSLIB_PLUGINDIR=/usr/local/lib/ts
儲存退出,執行source命令使之生效
#source /etc/profile
(A)、問題:——不知道使用哪個為準確的event2、event3、event4 ?:
解決方法在板子上:cat etc/profile
見圖1:



從圖一中自己發現的1、2的端倪——真正的解決方式是:
[root@EmbedSky /]#cat tpm/env
ts=3
Pointer=
我的板子上使用的:export set TSLIB_TSDEVICE=/dev/event3

我最終測試tslib的最終環境變數的配置是:
# Ash profile 
# vim: syntax=sh
# No core files by default
#ulimit -S -c 0 > /dev/null 2>&1
source /tmp/env
export set HOME=/root
export set TSLIB_FBDEVICE=/dev/fb0
export set TSLIB_TSDEVICE=/dev/event3
export set TSLIB_CONFFILE=/usr/local/etc/ts.conf
export set TSLIB_CALIBFILE=/etc/pointercal
export set TSLIB_PLUGINDIR=/usr/local/lib/ts
export PATH=$QTDIR/bin:$PATH
USER="`id -un`"
LOGNAME=$USER
PS1='[\[email protected]\h \W]# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH
(3)、執行檢測
/usr/local/bin中的ts_calibrate進行校準,成功的話會出現介面,並讓你點選十字元號,完成後會生成/etc/pointercal檔案,這是觸控式螢幕的校準配置檔案。如圖2、3所示
[[email protected] /]#./usr/local/bin/ts_calibrate
圖2:


[[email protected] /]#./usr/local/bin/ts_test
圖3:



三、交叉編譯配置ARM版本的Qt 5.5.0庫過程、與問題的解決
1、解壓Qt 5.5.0,和修改qmake.config檔案
[email protected]:/work#tar -zxvf qt-everywhere-opensource-src-5.5.0.tar.gz
修改:qmake.config檔案
[email protected]:/work/qt-everywhere-opensource-src-5.5.0#gedit 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_RELEASE += -O2 -march=armv7-a 
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a 

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

# modifications to g++.conf ##使用什麼交叉編譯器就使用誰的;這裡是天嵌的交叉編譯器
QMAKE_CC = arm-embedsky-linux-gnueabi-gcc
QMAKE_CXX = arm-embedsky-linux-gnueabi-g++
QMAKE_LINK = arm-embedsky-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-embedsky-linux-gnueabi-g++

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

2、修改:qt.pro檔案
[email protected]:/work/qt-everywhere-opensource-src-5.5.0# gedit qt.pro 
結果:去遮蔽掉下面兩行
#addModule(qt3d, qtdeclarative qtimageformats)
#addModule(qtcanvas3d, qtdeclarative)
原因:
qt3d和qtcanvas3d在編譯的時候會報錯,說是未識別模組,而且嵌入式的沒有opengl,識別了也會報錯,導致編譯失敗,而且編譯配置引數裡面也沒有這兩個模組的配置。方法是在配置時引數加-no-opengl,然後開啟qt-everywhere-opensource-src-5.5.0/qt.pro檔案,找到:
addModule(qt3d, qtdeclarative qtimageformats)
addModule(qtcanvas3d, qtdeclarative)
這兩行註釋掉(#號註釋),或者直接刪掉。如果不註釋掉,即使加了-no-opengl也會報錯,編譯失敗。

3、配置工程:執行./configure檔案
[email protected]:/work/qt-everywhere-opensource-src-5.5.0#./configure -release -opensource -confirm-license -plugin-sql-sqlite -no-opengl -no-dbus -no-c++11 -no-tslib -qt-libjpeg -qt-libpng -qt-zlib -xplatform linux-arm-gnueabi-g++ -no-openssl -alsa -no-iconv -prefix /opt/Qt-5.5.0-arm/

4、編譯安裝:make && make install
[email protected]:/work/qt-everywhere-opensource-src-5.5.0#make && make install
大約兩個多小時時間
我的編譯安裝目錄是:(./configure 時:-prefix /後面的目錄) /opt/Qt-5.5.0-arm/
然後將/opt/Qt-5.5.0-arm/資料夾下的lib,plugin和include拷貝到你想放置的地方,我放置在TQ210板子的opt/目錄下。

5 、Ubuntu和Windows之間的檔案拷貝方法
(1)、使用工具使用SCP登入Ubuntu 14.04拒絕訪問的話
解決方法:sudo apt-get install openssh-server
可以使用工具是:winscp570setup.exe
——使用這個工具的SCP可以直接登入Ubuntu方便檔案拷貝:拷貝檔案是先將要拷貝的資料夾使用:chmod 777 /work/tslib 1.0 -R 設定最高許可權
(2)、使用Samba實現檔案共享也是很好的方法

6、配置自己編譯的最新Qt 5.5.0環境變數的結果是:
# Ash profile 
# vim: syntax=sh
# No core files by default
#ulimit -S -c 0 > /dev/null 2>&1
source /tmp/env
export set HOME=/root
export set TSLIB_FBDEVICE=/dev/fb0
export set TSLIB_TSDEVICE=/dev/event3
export set TSLIB_CONFFILE=/usr/local/etc/ts.conf
export set TSLIB_CALIBFILE=/etc/pointercal
export set TSLIB_PLUGINDIR=/usr/local/lib/ts

export set QTDIR=/opt/Qt-5.5.0-arm
export set QPEDIR=/opt/Qt-5.5.0-arm
export set TSLIB_ROOT=/usr
export set LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
export set QWS_MOUSE_PROTO=tslib:/dev/touchscreen
export set LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QTDIR/lib:$LD_LIBARAY_PATH
#export set QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins
export set QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export set QT_QPA_FONTDIR=$QTDIR/lib/fonts
#export set QT_QPA_GENERIC_PLUGINS=tslib ——可能的問題:(1)、問題
export set QT_QPA_GENERIC_PLUGINS=evdevtouch:/dev/event3 —同tslib:event3
export PATH=$QTDIR/bin:$PATH
USER="`id -un`"
LOGNAME=$USER
PS1='[\[email protected]\h \W]# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH
(1)、問題
-no-tslib,表示不把tslib作為input庫,此時觸控式螢幕預設以evdev作為input庫,所以移植完過後在開發板的/etc/profile檔案中新增:
export QT_QPA_GENERIC_PLUGINS=evdevtouch:/dev/event0
如果還用tslib,那麼就該寫成:
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/event0

四、Ubuntu 14.04下安裝Linux版的:qt-opensource-linux-x64-android-5.5.0-2.run
1、問題:—Ubuntu 10.04-64位下安裝

相關推薦

Qt 5.5.0-成功移植TQ210

轉載地址:http://tieba.baidu.com/p/3996410074 一、需要準備的資源下載連結地址: 1、ubuntu-14.04.3-desktop-amd64+mac.iso:http://cdimage.ubuntu.com/releases/2、qt-

qt-5.6.0 移植qt原始碼編譯-configure選項

其實這只是給自己看的一個configure選項筆記,沒有太多的東西。 首先: 下載qt5.6的原始碼:     地址: http://download.qt.io/archive/qt/5.6/     下載完解壓: tar  -xvf   qt-everywhere-opensource-src-5.

Qt 5.5.0 Windows環境搭建

article 版本號 一個 source window 環境變量 bsp pro 不能 1)訪問官方站點:http://www.qt.io/download-open-source/ 2)選擇離線安裝包 3)選擇 W

Qt 5.7.0 使用 QAxWidget 顯示網頁

警告 spa false 運行 5.7 yaler etc bstr str 創建Qt Widgets Application,使用Qt Designer 在窗口中拖一個QAxWidget。 在pro文件裏加入一句: QT += axcontainer 顯示網頁的代碼如

MacOS(10.13)+Qt(5.5.0)+Xcode(8.3.3) C++開發環境配置

user use tools 虛擬機安裝 empty 快捷 man qwidget lib VMware虛擬機安裝MacOS(這裏安裝的是MacOS X 10.13), 百度很多, 不再詳述. 安裝Xcode(這裏安裝的是Xcode8.3.3) 下載(https://d

vs2015 + opencv3.4.0 + qt msvc2015_64-5.7.1 視屏顯示

nec adc paint 初始 color 參考 point tin his 1、qt application 2、qtvideoread.cpp中代碼為: #include "qtvideoread.h"#include <opencv2/core/core.hp

Qt新安裝之後出現Error while building/deploying (kit: Desktop Qt 5.7.0 GCC 64bit) When executing step "Make”

  Ubuntu14.04初次安裝Qt之後可能出現Error while building/deploying project *** (kit: Desktop Qt 5.7.0 GCC 64bit) When executing step "Make"錯誤。 &nbs

qt creator5.4.0(32) 連線mysql 5.7.17(32)

我的軟體版本 QT Creator 5.4.0 (32位)mysql 5.7.17 (msi) 問題    執行程式碼總是顯示mysql驅動未載入,但是qt5.4 是自帶驅動的,所以按照網上的方法 將mysql 安裝目錄/bin libmysql.dll檔案拷貝到qt的bi

解決Ubuntu18.04下Qt 5.12.0無法輸入中文的問題

解決辦法 進入到 /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts 目錄下, 把 libfcitxplatforminputcontextplugin.so 檔案 拷貝到QT安裝目

如何安裝Qt 5.8.0 +mingw

(1)qt安裝包下載 在Qt的官網上可以下載,但是不好找到下載的地方。 可以直接在這個網址 :      http://download.qt.io/      選擇official_release->qt->需要的版本 (2)windows下版本說明 w

一步解決Error while building/deploying project MyQtDemo (kit: Desktop Qt 5.7.0 MSVC2015 32bit) When exec

網上很多關於解決“Qt編譯時的 qmake”問題的方法都是扯淡,例如如下的答案     (1)右鍵構建qmake;     (2)重灌Qt 以上兩種答案都是扯淡,瞎bb。 之所以會出現 Error while building/deploying p

VS2013 編譯 Qt 5.8.0

1. 下載Qt原始碼 2. 將原始碼解壓縮,我放到了E盤根目錄,然後將qt-everywhere-opensource-src-5.8.0資料夾名字改為Qt 3. 在Qt目錄下新建檔案build.bat,內容如下:   REM Set up \Microsoft V

Qt 5.11.0使用gdb遠端部署和除錯

操作環境 PC: OS Debian9.4.0, Qt 5.11.0, IP: 192.168.1.10 BeagleBone Black: Debian 9.3.0, IP:

2016 mingw 5.3.0 + Qt 5.7.0 + opencv 3 under windows7

參考 準備工作,注意統一版本,如mingw5.3.0,32位。 安裝mingw 5.3.0: 在 http://www.mingw.org/ 上最新的mingw 版本為4.9.2,這個官網感覺已經在2013年停止開發了。新的mingw官網在 htt

Qt 5.1.0 on Ubuntu Linux, MySQL資料庫報錯 (driver not loaded)

問題描述: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7 false 引起報錯的示例程式碼如下:

PMD 5.7.0 發布,Java 程序代碼檢查工具

使用 beats odi 每日 代碼 amp 抓取 變量 更多 PMD 5.7.0 發布了。PMD 是一款采用 BSD 協議發布的 Java 程序代碼檢查工具。該工具可以做到檢查 Java 代碼中是否含有未使用的變量、是否含有空的抓取塊、是否含有不必要的對象等。該軟件功能強

cdh-5.10.0搭建安裝

touch 時間 fec nod tro tools.jar lines png har 1.修改主機名為master, slave1, slave2 vim /etc/sysconfig/network HOSTNAME = master HOSTNAME = s

Ubuntu 14.04 64bit下Caffe + Cuda6.5/Cuda7.0 安裝配置教程

-a att html mode .net share surface art cores http://www.embeddedlinux.org.cn/emb-linux/entry-level/201612/21-6005.html 隨著深度學習快速發展的浪潮,許多有

web.xml & web-fragment.xml (Servlet 2.3, 2.4, 2.5 + 3.0)模板

div location log javaee mls schema ins pub too 轉自:http://jlcon.iteye.com/blog/890964 web.xml v2.3 Xml代碼 <?xml version="1.0" en

ELK 5.5.0 安裝

down 5.5.0 spec https 當前 artifact max mes nproc Preparation 假設當前為root用戶,並已有jdk1.8環境。 cd /opt/package useradd sealion ElasticSe