一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

【轉(zhuǎn)帖】嵌入式4412開發(fā)板QT5.7編譯安裝到arm

 guitarhua 2016-09-14

QT5.7.0+UBUNTU16.04+ARM-NONE-LINUX-GNUEABI4.8+busybox最小LINUX系統(tǒng)

Orandragon記錄

本文轉(zhuǎn)自迅為4412開發(fā)板群:http://

平臺(tái):iTOP-4412精英版+4.3寸屏

有學(xué)東西寫文章的習(xí)慣,畢竟都是入門,在這里記錄一下安裝過程,雖然可能短期內(nèi)用不到了,但以后用到的時(shí)候可以作為參考。
********************************華麗的分割線***************************
1、從網(wǎng)上下載所有最新的源碼
Ubuntu16.0 amd64版本第一個(gè),這個(gè)就不要源碼了,直接安裝就好了
QT5.7.0,萬能的度娘一找就找到了(官網(wǎng)下載),注意是下載源碼,linux版本的源碼。ARM-NONE-LINUX-GNUEABI- GCC4.8,arm-***以后就這么寫了,名字太長,這個(gè)選擇源碼或者選擇編譯好的都可以,有一個(gè)博客(http://blog.csdn.net /ee230/article/details/41513957)搜集到了從08-14版本的所有編譯器版本,如果從官方下載比較費(fèi)勁,還要注冊(cè)啥的, (誰要有興趣去把15,16下載下來,發(fā)我一份),大公司就是裝逼,注冊(cè)都這么費(fèi)勁
2、ubuntu16的安裝就沒什么可以講得了,虛擬機(jī)一路下一步
3、 系統(tǒng)裝好了,裝一下輔助軟件。Wine1.9,這個(gè)安裝過程貌似有什么特殊需要注意的問題,ssh的安裝,直接apt-get就好了,其實(shí)國外服務(wù)器也不 是很慢的,我沒有改服務(wù)器,下載速度500~600kbps還是可以接受的。ATTENTION:最新版本的ssh不支持舊版本的加密協(xié)議,導(dǎo)致客戶端連 接會(huì)出現(xiàn)問題,這個(gè)時(shí)候就該度娘出馬了,問題好解決,不寫了,自己搜一下一步一步跟著做。Wine安裝完之后什么source insight呀、notepad++呀就全裝上吧,你想裝個(gè)QQ也行,把字庫改一下,要不用不了,以后基本所有操作就在linux下進(jìn)行了。
4、 編譯器的安裝,這個(gè)地方要安裝兩個(gè)編譯器(如果你以后不想找麻煩的話),arm-***q09和arm-***q14(下文繼續(xù)簡化為q09和q14)裝 第一個(gè)編譯器的原因是為了編譯kernel(用q14當(dāng)然也可以,期間你需要極其細(xì)心以及極具耐心的調(diào)試,我編譯通過,耗時(shí)兩天,新版編譯器內(nèi)聯(lián)函數(shù)編譯 方法改變很大,所以要一點(diǎn)一點(diǎn)調(diào)試,當(dāng)然有問題可以多交流~~),編譯器就不重裝了,安裝過程也比較簡單,直接解壓到opt目錄下然后配置一下環(huán)境就可以 了(鑒于馬上要編譯qt,這個(gè)地方先把q09的環(huán)境注釋起來,添加q14的環(huán)境),安裝完成后打開控制臺(tái),輸入arm雙擊tab,看看有沒有很神奇的事情 發(fā)生(出現(xiàn)了很多arm開頭的命令,那說明你成功了)。

5、tslib的編譯
編譯tslib的歷程異常曲折,這本來應(yīng)該是最好編譯的一個(gè)插件,但是因?yàn)榘姹咎昧耍?009年就停止更新了吧,其 open函數(shù)凡是用到O_CREAT的都沒有加第三個(gè)參數(shù),2009年以后的arm-none編譯器要求O_CREAT打開的文件必須要第三個(gè)參數(shù),尼瑪 改來改去累死我了,然后我就驚奇的發(fā)現(xiàn)了4412光盤里道長已經(jīng)給編譯好了。。。。。。(4412光盤\iTOP-4412精英版光盤資料\08_源碼 _QtE以及qtopia2.2.0文件系統(tǒng)\patch),直接拷過去用,然而又是版本的問題,沒有與qt5.7.0很好的兼容,況且又沒有源碼,根本 就沒法調(diào)試嘛,失敗。咋整,繼續(xù)度娘,終于,找到了一個(gè)在qt5.5下編譯ts的大神,提供了一份完美的源碼,一點(diǎn)沒動(dòng),q2014編譯器編譯直接通過, 源碼不難為大家,我直接放在壓縮包里傳給大家了,看一下我的編譯過程(倒騰這個(gè)整整用了我一下午的時(shí)間)

 


大愛的tslib呀,強(qiáng)行收藏。
依然用人見人愛的腳本寫編譯過程,非常的舒暢:
Tslib文件夾下新建文件vim configTslib14.sh
內(nèi)容:
#!/bin/sh

make clean && make distclean
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
CC=/usr/local/arm-2014.05/bin/arm-none-linux-gnueabi-gcc ./configure --host=arm-linux --prefix=/opt/tslib1.4 --cache-file=arm-linux.cache
make && make install

運(yùn)行./configTslib14.sh
編譯安裝完成,其實(shí)之前我是先編譯好qt的,直接tslib復(fù)制到qt目錄下模塊編譯,失敗 (到現(xiàn)在沒有找到原因,大家可以嘗試先編譯qt5.7,然后再模塊編譯tslib),既然如此就重新打包編譯把,直接編譯到qt中去好了,所以這個(gè)地方可 以省下大家的時(shí)間,我其實(shí)是先成功編譯了一次的qt5.7,足足兩個(gè)小時(shí),結(jié)果發(fā)現(xiàn)tslib模塊編譯失敗又返回來重新打包編譯,所以這篇教程的順序是先 編譯的tslib,也希望大家有興趣研究一下模塊編譯,這樣就可以隨意的在qt5.7中增減模塊,因?yàn)閝t5.7最大的特點(diǎn)就是模塊化,非常的方便,然而 我卻沒有利用起來。繼續(xù)教程~

6、qt的編譯
這個(gè)地方我重新編譯一下qt,可以給大家保存一些截圖,因?yàn)榈谝淮尉幾g沒有刪掉那些沒用的模塊,足足編譯出了140mb的 庫,尼瑪喲什么鼠標(biāo)鍵盤nfc啥都有,qt5.7里還帶了什么purchasing模塊,沒錯(cuò),就是購買模塊,有點(diǎn)像apple pay,這些我們都不要,所以我重新編譯一下,剛好過程可以screenshot一下了,注意qt5.7必須要q2014的編譯器哦,因?yàn)閝t5.7源碼 是用stdc++11 版本寫的(2011年出的c++新規(guī)則,你用q2009怎么可能編譯通過,之前在這個(gè)地方犯2很久),開始操作了。
1、源 碼解壓,個(gè)人沒有好習(xí)慣,源碼就在桌面上放著,個(gè)人還是習(xí)慣圖形界面跟控制臺(tái)一起操作,你要是在控制臺(tái)root用戶下tar,文件夾所屬是root,圖形 界面的用戶是修改不了其中的文件的(當(dāng)然可以chmod 777一下,但還是很麻煩),所以,簡單操作,撇開控制臺(tái),右擊源碼壓縮包,直接extract here解壓
留下壓縮包以備后用,這里可以看到控制臺(tái)tar的文件夾旁邊都有一個(gè)小鎖,普通用戶只可以讀不可以更改的。

 

 

 

 

 

 


Ctrl+alt+t打開控制臺(tái),vim修改qt-everywhere-opensource-src-5.7.0/qtbase /mkspecs/linux-arm-gnueabi-g++/qmake.conf文件,開始添加這三句,告訴Qmake咱們的平臺(tái),這些腳本的解釋 在官網(wǎng)都有,有興趣的自己去看一下

 

 

 


/********************************新加入***************************/
QT_QPA_DEFAULT_PLATFORM = linux #eglfs
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a

 

編譯器名字加上none,當(dāng)然你用友善編譯器、elf編譯器都可以,根據(jù)名字修改,保存。

在qt-everywhere-opensource-src-5.3.0/目錄下為方便配置建立一個(gè)autoconfig.sh文件(直接文件夾右擊新建,雙擊打開),內(nèi)容為:
#!/bin/sh
./configure \
-v \
-prefix /opt/qt5.7.0 \
-release \
-opensource \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-no-opengl \
-skip qt3d \
-skip qtcanvas3d \
-skip qtpurchasing \
-no-sse2 \
-no-openssl \
-no-nis \
-no-cups \
-no-glib \
-no-iconv \
-nomake examples \
-nomake tools \
-skip qtvirtualkeyboard \
-I/opt/tslib1.4/include \
-L/opt/tslib1.4/lib

exit
最后兩行為tslib的安裝位置,根據(jù)需要改動(dòng)
其實(shí)一直沒有搞懂nomake和skip的含義,我感覺用起來一樣,上面的 這些內(nèi)容就是告訴qt需要哪些模塊,不需要哪些模塊,及其安裝路徑等等,具體的可以輸入./configure --help查看。有些模塊沒有opengl的話要進(jìn)行修改,否則編譯不通過。這些模塊我都用不到,全部skip掉。還有examples,這個(gè)建議大家 編譯進(jìn)去吧,里邊的小例子可以直接用于測試,我已經(jīng)編譯過了,所以直接nomake,特別注意,所有的連字符/前邊都要加一個(gè)空格,exit前要回 車,sh文件格式很關(guān)鍵,多一個(gè)空格都會(huì)出錯(cuò),大家自己摸索一下,千萬不要亂打空格,即使在每行的最后也不能有空格。-no-iconv \這個(gè)必須要加上,否則字庫會(huì)出問題,我們暫時(shí)不用這個(gè)模塊。

設(shè)置完成后,運(yùn)行:
./autoconfig.sh
等待qmake配置一會(huì)兒,檢查一下彈出的模塊列表看有沒有少的多的
然后就是套路了
make
哇啦哇啦#¥……%&……*&()*#%¥%……&(),等待一個(gè)小時(shí)左右

 



編譯的期間,再去qt官網(wǎng)上把linux的ubuntu版本qt5.7下載下來,這個(gè)不要源碼,下載那個(gè).run的文件,下載到 電腦上,直接雙擊安裝(注意:qt5.7的linux版本只能在ubuntu16上安裝,ubuntu12上是打不開的,不要用控制臺(tái)安裝,直接雙擊打開 安裝就可以了,默認(rèn)是安裝在/home路徑下,以后用起來方便)

好了,源碼編譯完成了
make install安裝到opt目錄下面
安裝完成。

 


這里邊我們用的就是plugins lib include
還沒有完成,tslib還沒有以插件的形式安裝進(jìn)qt
我們進(jìn)入這個(gè)文件夾cd qt-everywhere-opensource-src-5.7.0/qtbase/src/plugins/generic/tslib
運(yùn)行我們剛剛編譯出的qmake /opt/qt5.7.0/bin/qmake
創(chuàng)建好makefile
然后make
make install

下面就可以打包啦,tar一下(tslib和qt5.7.0),插上sd卡復(fù)制到開發(fā)板再解壓到開發(fā)板的opt目錄(沒有的話就自己建一個(gè)),根據(jù)道長的qt視頻隨便編譯一個(gè)程序,我拖了一個(gè)大按鈕上去,拷貝到開發(fā)板運(yùn)行測試一下

 

 

我們要的就是這個(gè).so,我們看到已經(jīng)自動(dòng)安裝在里邊啦
到opt目錄下 tar –zvcf qt.gz qt5.7.0/
復(fù)制到u盤
順便從ubuntu里復(fù)制幾個(gè)好看的字庫 我這里復(fù)制了兩個(gè) ukai.ttc uming.ttc,感覺不錯(cuò)哦,復(fù)制帶中文字庫的,以后寫程序就用它了,除非你不用中文
其他亂七八糟的都是我常年不整理的遺留物

 


下面的操作轉(zhuǎn)戰(zhàn)開發(fā)板,開發(fā)板搭載的系統(tǒng)就是道長提供的kernel和busybox,這里busybox希望用最新版本的話就去官網(wǎng)下載一個(gè)自己編譯吧,不操作了,一切從簡。
放進(jìn)開發(fā)板的opt目錄下,沒有就自己新建一個(gè)

 

 

搭建環(huán)境

 

export TSLIB_ROOT=/opt/tslibexport QT_ROOT=/opt/qt5.7.0

export TSLIB_TSDEVICE=/dev/input/event2
export TSLIB_TSEVENTTYPE=input
export TSLIB_CALIBFILE=/opt/tslib/pointercal
export TSLIB_CONFFILE=/opt/tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/opt/tslib/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

(我的tslib1.4改名為tslib了)
這是我的設(shè)置,設(shè)置內(nèi)容官網(wǎng)上講解非常詳細(xì),自行查看,按照自己的實(shí)際操作
配置完成source更新一下環(huán)境

然后打開opt/tslib/etc下的ts.conf,把第二行的注釋去掉,把ts設(shè)置成輸入模式

好啦,配置完成了有沒有很激動(dòng),趕緊做個(gè)程序試一下,按照道長的qt教程去電腦端在qtcreator里拖一個(gè)大按鈕進(jìn)去,qmake一下,拷進(jìn)開 發(fā)板,./test 運(yùn)行一下,心哇涼哇涼的,又有錯(cuò)誤,說缺少stdc++.so.6,這是因?yàn)槲覀僰ernel的環(huán)境下沒有這個(gè)庫,好解決,去編譯器下的目錄復(fù)制一個(gè)進(jìn)來 就行了,放到環(huán)境目錄的任意一個(gè)目錄下,以后寫程序難免會(huì)用到開發(fā)板沒有的庫,解決方法有兩個(gè),一個(gè)是復(fù)制一個(gè)庫進(jìn)來,一個(gè)是靜態(tài)編譯。其實(shí)對(duì)于qt這個(gè) 系統(tǒng)來講,靜態(tài)編譯應(yīng)該是非常好的一種解決方法,可以省下很大的空間,畢竟我們就只運(yùn)行一個(gè)程序。但是,如果要采用靜態(tài)編譯,我們必須把qt編譯成靜態(tài) 的,這樣才能有靜態(tài)庫來編譯我們的靜態(tài)程序。這里不演示了,畢竟我的板子還是16g內(nèi)存的哈哈哈,不在乎這點(diǎn)小空間(當(dāng)然安裝程序的空間需要你重新編譯 uboot來多分配一點(diǎn),否則就只有300mb左右哦,300mb也夠用了)。

回正題,運(yùn)行:
我們先運(yùn)行一個(gè)tslib的初始化程序,在opt/tslib/bin 里

 

這個(gè)程序會(huì)校準(zhǔn)觸摸屏,并把校準(zhǔn)信息儲(chǔ)存在profile文件中指定的目錄下邊

 

 

好的校準(zhǔn)完成了
運(yùn)行一下我的大按鈕:./test
老子的字不見了,看一下超級(jí)終端,字庫錯(cuò)誤,哦,忘記把字庫放進(jìn)去了,剛才存的字庫拷貝到profile指定的字庫文件夾中,再運(yùn)行,字出來啦,大按鈕太丑了。找了個(gè)例子拍了個(gè)照片,好啦,完成了。

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产精品熟女在线视频| 99精品国产一区二区青青| 国产亚洲中文日韩欧美综合网| 国产激情一区二区三区不卡| 国产极品粉嫩尤物一区二区| 99久久人妻精品免费一区| 欧美丰满人妻少妇精品| 尤物天堂av一区二区| 欧美日韩精品视频在线| 翘臀少妇成人一区二区| 欧美日韩国产一级91| 九九久久精品久久久精品| 色婷婷亚洲精品综合网| 久久永久免费一区二区| 午夜久久久精品国产精品| 日韩欧美国产三级在线观看| 一级片黄色一区二区三区| 亚洲精品日韩欧美精品| 麻豆视频传媒入口在线看| 国产又粗又猛又爽色噜噜| 久久经典一区二区三区| 夫妻性生活真人动作视频| 欧美乱码精品一区二区三| 久久精品偷拍视频观看| 久久国产精品亚州精品毛片| 人人妻人人澡人人夜夜| 国产三级黄片在线免费看| 激情亚洲内射一区二区三区| 欧美亚洲三级视频在线观看| 亚洲国产精品久久琪琪| 国产高清在线不卡一区| 精品少妇一区二区三区四区| 精品人妻一区二区三区免费看| 在线观看视频日韩成人| 日韩国产亚洲一区二区三区| 欧美一区二区不卡专区| 久热99中文字幕视频在线| 中文久久乱码一区二区| 出差被公高潮久久中文字幕| 在线日韩欧美国产自拍| 中文字幕亚洲精品在线播放|