Qt5.7.0移植到4412


搞了幾天,終於把Qt5.7移植到4412上,下面是一些自己移植過程中的記錄,希望能幫到其他人。

一、需要下載的文件,

下載qt5.7源碼qt-everywhere-opensource-src-5.7.0.tar.xz 
http://www.download3k.com/Install-Qt.html

下載ARM交叉編譯工具arm-2014.05-29-arm-none-Linux-gnueabi-i686-pc-linux-gnu.tar.bz2 
http://www.veryarm.com/arm-none-linux-gnueabi-gcc

下載tslib1.4 
http://vdisk.weibo.com/s/AcUHxOERV2k0?sudaref=www.baidu.com

桌面系統是ubuntu14.04 32位 ,開發板目前搭載的系統是來自訊為的最小Linux系統。

二、移植

1.安裝arm交叉編譯器arm-2014,將下載的arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2解壓到自己的安裝目錄,這里我選的是 /usr/local/arm  

下來就是修改環境,打開etc/profile

vi /etc/profile

添加 

export PATH=$PATH:/usr/local/arm/arm-2014.05/bin
export CROSS_COMPILE=arm-none-linux-gnueabi-

保存后 更新下  source /etc/profile

控制台輸入arm  按兩下下table后如果出現arm-none-linux-gnueabi-gcc-4.8.3  說明可以了,也可以通過

arm-none-linux-gnueabi-gcc -v  這條命令測試,如果出現一大串字母 ,最后一行是gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)  ,那就沒問題了。

2.安裝tslib1.4

將下載的tslib1.4解壓到自己的目錄 ,我選得是自己downloads文件夾 ,解壓得到tslib1.4文件夾,在控制台進入這個文件夾,先安裝一些東西,

sudo apt-get install autoconf

sudo apt-get install automake

sudo apt-get install libtool

 

安裝完之后執行 

./autogen.sh
然后
./configure CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ --host=arm-none-linux-gnueabi  --prefix=/opt/tslib1.4 ac_cv_func_malloc_0_nonnull=yes
prefix是自己的安裝目錄,自己決定。
最后
make
sudo make install
沒出錯的話就可以繼續下一步了,出錯了百度吧,估計是沒安裝什么東東。

3. 編譯Qt5.7的源碼。
在自己的downloads文件夾解壓得到的源碼,

進入該文件夾,打開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 = linux #eglfs
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-none-linux-gnueabi-gcc
QMAKE_CXX               = arm-none-linux-gnueabi-g++
QMAKE_LINK              = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = arm-none-linux-gnueabi-g++

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

  執行

./configure -release -opensource -tslib -xplatform linux-arm-gnueabi-g++ -prefix /opt/Qt-5.5.0/armv7-a -no-c++11 -no-opengl -I/opt/tslib1.4/include -L/opt/tslib1.4/lib

  沒有錯誤的話 就 make && make install

到安裝文件夾下就出現了安裝的文件

那就成功了。

三、安裝qt-crearor3.3.0  

從http://mirrors.hust.edu.cn/qtproject/archive/qt/   下載需要的版本,直接運行 ,一路 next 下去就行了。

打開安裝的qtcreator ,設置開發環境,如下圖

 

 

OK  用過windows版本的qt這應該沒什么難度。

四 、程序測試。

將編譯好的tslib1.4 和qt整個文件夾 拷貝到開發板的/opt目錄,

修改開發板環境:vi /etc/profile

export TSLIB_ROOT=/opt/tslib1.4
export QT_ROOT=/opt/qt-5.7.0   
export TSLIB_TSDEVICE=/dev/input/event2
export TSLIB_TSEVENTTYPE=input         
export TSLIB_CONFFILE=/opt/tslib1.4/etc/ts.conf
export TSLIB_PLUGINDIR=/opt/tslib1.4/lib/ts    
export TSLIB_CONSOLEDEVICE=none                
export TSLIB_FBDEVICE=/dev/fb0             
export QWS_MOUSE_PROTO=tslib:/dev/input/event2
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$TSLIB_ROOT/lib:$TSLIB_ROOT/lib/
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins                                              
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0                                                      
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts           
export QT_QPA_GENERIC_PLUGINS=tslib

  QT_ROOT是qt庫的目錄。更新 source /etc/profile

 

然后在串口命令窗中輸入 vi /opt/tslib1.4/etc/ts.conf 來配置觸摸屏 

刪除第二行前面的#就可以了,如果出錯重新打開修改第二行,去掉空格和#

 

 

一切搞完之后就可以編寫qt程序了,將編譯后的程序用u盤復制到開發板,./program  就可以運行了,但十有八九會報錯缺少libstdc++.so  所以要復制一個libstdc++.so到lib目錄下,到此,搞定。

下面是我用的libstdc++.so。

http://pan.baidu.com/s/1nvJbRB

hb1m

 

整個過程中很感謝 劉大神、彩陽博主和一名熱心網友的幫助。

參考的:

http://www.cnblogs.com/topeet/p/5711957.html

http://blog.csdn.net/u012175418/article/details/52704734?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

http://www.cnblogs.com/emouse/archive/2013/01/29/2881311.html

 

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM