在ubuntu16.04搭建Qt4.8.6嵌入式開發環境
環境以及軟體版本
虛擬機器環境:ubuntu16.04 64位
虛擬機器環境中gcc的版本:gcc version 5.4.0 20160609
Qt版本:qt-everywhere-opensource-src-4.8.6.tar.gz
QtCreator版本:qt-creator-linux-x86_64-opensource-2.5.2.bin
下載路徑:http://download.qt.io/archive/qtcreator/2.5/
嵌入式交叉編譯工具:arm-none-linux-gnueabi-gcc 4.3.3
下載路徑: http://pan.baidu.com/s/1kULkXnh
中間使用到的
Qt環境配置:
交叉編譯環境配置:
1.1解壓
tar -xvf arm-2009q1.tgz -C /usr/local/
1.2環境變數配置:
由於上一步是將交叉編譯工具arm-none-linux-gnueabi-gcc 4.3.3解壓到了/usr/local/目錄下,交叉編譯所需要使用的arm-none-linux-gnueabi-等命令是在/usr/local/arm-2009q1/bin目錄中,執行
sudo vim vim environment 將/usr/local/arm-2009q1/bin追加到環境變數
2. Qt環境安裝
2.1 Qt Creator安裝
切換到對應目錄,直接
2.2 Qt安裝
2.2.1 解壓
將qt-everywhere-opensource-src-4.8.6.tar.gz解壓三份,分別命名為qt_pc qt_x86 qt_arm
tar qt-everywhere-opensource-src-4.8.6.tar.gz -C /usr/local/qt/qt_pc
tar qt-everywhere-opensource-src-4.8.6.tar.gz -C /usr/local/qt/qt_x86
tar qt-everywhere-opensource-src-4.8.6.tar.gz -C /usr/local/qt/qt_arm
安裝qt_pc
切換到qt_pc所在目錄:cd /usr/local/qt/qt_pc
分別執行 即可完成安裝
./configure
make
make install
安裝qt_x86
1. 安裝
切換到qt_x86所在目錄:cd /usr/local/qt/qt_x86
分別執行以下命令進行安裝
./configure -opensource -confirm-license -prefix /usr/local/Trolltech/Qt-qvfb-4.8.6 -embedded x86 -xplatform qws/linux-x86_64-g++ -qvfb
make
sudo make install
-xplatform qws/linux-x86_64-g++ :因為Ubuntu系統是64位的,所以將平臺引數配置成linux-x86_64的。如果使用的是32位系統可直接使用qws/linux-x86-g++
2. qvfb模擬中文顯示亂碼
解決辦法,重新下載了支援中文的wenquanyi字型,重新匯入到Qt_x86的安裝目錄下的/lib/fonts下,然後在qtcreator的執行引數那裡追加引數:
-qws -qws -font wenquanyi對於不同字號的支援,需要複製不同字號大小的wenquanyi字型到/lib/fonts目錄下。之後再次點選即可執行中文即可解決。
詳細:
http://blog.csdn.net/bobbat/article/details/51494226
Qt4.8.6 ARM版安裝
安裝過程中需要的工具:
apt-get install lsb-core
apt install libtool-bin
gcc-4.4.3原始碼(gcc版本高於4.3.3即可,需要用到其中的linux-atomic.c檔案)
1:交叉編譯環境配置:
1.1解壓
tar -xvf arm-2009q1.tgz -C /usr/local/
1.2環境變數配置:
由於上一步是將交叉編譯工具arm-none-linux-gnueabi-gcc 4.3.3解壓到了/usr/local/目錄下,交叉編譯所需要使用的arm-none-linux-gnueabi-等命令是在/usr/local/arm-2009q1/bin目錄中,執行
sudo vim vim environment 將/usr/local/arm-2009q1/bin追加到環境變數
2. Qt ARM版配置
1-解壓:
tar -zxvf qt-everywhere-opensource-src-4.8.6.tar.gz -C /usr/local/qt_arm
2-configure
./configure -little-endian -opensource -confirm-license -prefix /hisome/qt/qt_4_8_6_arm -embedded arm -xplatform qws/linux-arm-gnueabi-g++
3-make
make -j4
出錯:交叉編譯環境配置沒錯
apt-get install lsb-core
可見是在編譯/usr/local/qt_arm/qt-everywhere-opensource-src-4.8.6/src/corelib下面的檔案時找不到lrt庫了沒,修改方法切換到此目錄,修改其Makefile,在LIBS變數後追加-lrt
將下載的gcc-4.4.3.tar.gz的原始碼解壓,然後在gcc-4.4.3/gcc/config/arm/目錄下找到一個linux-atomic.c;
執行如下兩條命令使用libtool製作連結庫:
安裝libtool -- apt install libtool-bin
libtool --tag=CC --mode=compile /usr/local/arm-2009q1/bin/arm-none-linux-gnueabi-gcc -g -O2 -MT linux-atomic.lo -MD -MP -MF linux-atomic.Tpo -c -o linux-atomic.lo linux-atomic.c
libtool --tag=CC --mode=link /usr/local/arm-2009q1/bin/arm-none-linux-gnueabi-g++ -g -O2 -o liblinux-atomic.la linux-atomic.lo
之後會在當前目錄生成一個隱藏目錄:.libs。進入到.libs這個目錄,將其中的liblinux-atomic.a這個靜態連結庫複製到 /opt目錄下。此處並非指定opt,只需複製到一個簡短的目錄,便於後續修改qt-everywhere-opensource-src-4.8.6.tar.gz中出錯的Makfile。
就上圖而言出錯的目錄是/usr/local/qt/qt_arm/qt-everywhere-opensource-src-4.8.6/src/3rdparty/webkit/Source/WebKit/qt
到達這個目錄,開啟其Makfile,在LIBS這個變數後追加 -L/opt -llinux-atomic,儲存退出即可,另外在接下來的編譯中還會報一個同類型的錯誤,此時開啟此目錄下的Makefile.WebKit.QtWebKit在其LIBS後追加同樣內容後繼續make.
對於undefined reference to `__sync_add_and_fetch_4'型別的錯誤,只需在錯誤的地方注意下出錯的目錄,在對應目錄中的Makefile中新增這個連結庫即可。
沒有任何錯誤後直接make install就好了
4. 字型檔設定,由於使用所下載的qt-everywhere-opensource-src-4.8.6自身不帶中文字型檔,所以對於中文需求還需要另外下載pfb格式的字型檔。此次交叉編譯過程中所使用的字型檔是wenquanyi字型。另外也可以將宋體等字型進行pfb格式轉換詳細過程見:
http://blog.csdn.net/zybasjj/article/details/7660432
開發板配置:
1. 將Qt應用程式所需要的庫複製出來在qt_arm的安裝目錄下的lib目錄下,應用程式需要哪個庫就複製出來哪個庫;另外還需要將所需要的字型檔複製到對應的資料夾(qt安裝目錄/lib/fonts)。所有這些檔案的存放路徑要與PC上的安裝路徑一致,字型檔設定完後在程式碼中要將中文轉碼為utf -8。
設定開發板的Qt環境變數
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/qt4_8_6/lib
export QT_QPA_PLATFORM_PLUGIN_PATH=/home/qt4_8_6/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=/home/qt4_8_6/fonts-------設定字型檔
詳細介紹如下表
driver specific option |
使用物件 |
描述 |
tty=<device> |
LinuxFb |
將裝置檔案描述符傳遞到Qt應用程式所在的終端 |
nographicsmodeswitch |
LinuxFb |
確保應用程式不執行在graphics模式 |
littleendian |
LinuxFb |
告知驅動程式處理framebuffer的時候使用小端模式 |
MmWidth=<value> |
LinuxFb QVFb |
螢幕的物理寬度,用於計算DPI |
MmHeight=<value> |
LinuxFb QVFb |
螢幕的物理高度用於計算DPI |
<device> |
LinuxFb |
|
<subdriver> |
VNC Transformed,Multi |
指定子驅動 |
<RotX> |
Transformed |
指定螢幕旋轉,X的可用值是90 180 270 |
Offset=<x,y> |
Multi |
指定子螢幕左上角的座標(預設是0,0) |
QWS_DISPLAY環境變數還可以直接跟在可執行程式下面使用-display 來執行
嵌入式linux Qt的環境變量表
環境變數 |
描述 |
POINTERCAL_FILE |
|
QT_ONSCREEN_PAINT |
如果定義了此環境變數,Qt應用程式將直接在螢幕上顯示部件。螢幕驅動程式不會修改螢幕的受影響區域,除非另外一個視窗在同一區域具有更高的焦點請求。設定了此環境變數等同於在Qt應用程式中設定了Qt::WA_PaintOnScreen屬性,此屬性應用於所有的部件, 可參考: Qt for Embedded Linux graphics rendering documentation |
QWS_SW_CURSOR |
定義此環境變數後軟體滑鼠游標會總是使用(即使使用了一個支援硬體游標加速的驅動程式) |
QWS_DISPLAY |
指定顯示器型別和framebuffer可見上表 |
QWS_SIZE |
指定嵌入式linux中的Qt應用程式的視窗大小,此視窗以螢幕為中心, Export QWS_SIZE=<width>x<height> |
QWS_MOUSE_PROTO |
指定軟體滑鼠游標的驅動程式。 Export QWS_MOUSE_PROTO=”<driver>[:<driver secific options>]” driver可用引數:MouseMan; IntelliMouse; Microsoft ;LinuxTP ;Tslib 以及使用者自定義的驅動標識。 <driver secific options>:裝置描述符/dev/mouse----滑鼠裝置 /dev/ts----觸控板 另可一次性指定多個滑鼠驅動: Export QWS_MOUSE_PROTO=”<driver>[:<driver secific options>]<driver>[:<driver secific options>]<driver>[:<driver secific options>]” |
QWS_KEYBOARD |
指定字元輸入裝置的驅動: Export QWS_KETBOARD=”<driver>[:<driver secific options>]” driver可用引數:TTY ;LinuxInput以及使用者自定義的驅動標識。 <driver secific options>:裝置描述符/dev/tty0 同QWS_MOUSE_PROTO裝置,也可同時指定多個裝置,使用方式同QWS_MOUSE_PROTO |
對於高版本的Qt的安裝需要和高版本的arm-none-linux-gnueabi-交叉編譯工具相配合,否則在編譯原始碼過程中會有各種奇怪問題。之前使用4.3.3版本的交叉編譯工具編譯Qt5.8.0的原始碼的時候就出現了各種奇葩問題,由於交叉編譯工具版本無法更換,故使用了Qt4.8.6進行編譯安裝。
在windows環境下使用高版本的Qt進行開發的時候要轉而進行嵌入式開發的時候,建議先在windows下使用4.8.6版本的Qt將高版本的程式碼除錯通過後即可對整個工程進行交叉編譯。當前工程目錄下使用交叉編譯之需3步:(可以這樣使用qmake的前提是交叉編譯版的qmake已經做好了環境變數,否則需要填入完整路徑)
1. qmake -project
2. qmake
3. make
嵌入式程式在板子上執行:
./appname -qws -font wenquanyi &
tslib解壓安裝:
tslib版本:tslib-1.4.tar.gz
下載路徑:http://pan.baidu.com/s/1cLJ3qe
需要用到觸控式螢幕的時候需要使用tslib,具體tslib安裝過程中所需要的工具已經記不清楚了,不過配置過程是沒問題的,到時候出哪個錯了百度一下直接按照相關教程來安裝對應的工具即可。
tar -xvf tslib-1.4.tar.gz
cd tslib
./autogen.sh
echo "ac_cv_func_malloc_0 _nonnull=yes">arm-linux.cache
./configure --host=arm-none-linux-guneabi --cache-file=arm-linux.cache --enable-inputapi=no -prefix=/usr/local/tslib
--host:指定交叉編譯工具
-prefix:制定安裝目錄
相關推薦
在ubuntu16.04搭建Qt4.8.6嵌入式開發環境
環境以及軟體版本 虛擬機器環境:ubuntu16.04 64位 虛擬機器環境中gcc的版本:gcc version 5.4.0 20160609 Qt版本:qt-everywhere-opensource-src-4.8.6.tar.gz QtCreator版本:qt
QT4.8.6-VS2010開發環境配置
目錄 1.下載軟體 2.環境配置 3.VAssistX配置 1.下載軟體 VS2010下載地址:連結: https://pan.baidu.com/s/1gvPjZWBtSEwW37H1xf2vbA 提取碼: afbv Qt4.8.6下載地址:http://iso.mirro
QT4.8.6和VS2010環境搭建
首先下載QT4.8.6的安裝包、QT Addin 1.11外掛和VS2010安裝包。 第一步:安裝好VS2010 第二步:安裝QT4.8.6 剛剛安裝了一下,所有的配置都不用改,按照步驟來就行。預設安裝在C:\\QT4.8.6
【netcore基礎】ubuntu 16.04 搭建.net core 2.1 linux 執行環境 nginx反向代理 supervisor配置自啟動 【.NetCore學習】ubuntu16.04 搭建.net core mvc api 執行環境 .Net Core 部署到Ubuntu 16.0
今天來整理下netcore在linux(ubuntu)上的執行環境搭建 對應版本 ubuntu 16.04 .net core 2.1 nginx version: nginx/1.10.3 (Ubuntu) supervisor Supervisorhttp://super
Ubuntu16.04 搭建Android O以後的編譯環境
1. 在如下檔案中新增以下源:/etc/apt/sources.list,這樣在後續安裝外掛的時候就不會導致因為源的問題而下載或更新失敗,甚是鬱悶的情況就會少發生不少 deb http://apt.sys.srv/ubuntu/ trusty main restricted
64位ubuntu16.04搭建嵌入式linux開發環境的奇葩問題
奇葩問題1:選擇ubuntu映象啟動安裝時,黑屏,使用網上方法去掉3D圖形加速也不行 宿主機上執行如下命令,重啟宿主機 netsh winsock reset 奇葩問題2:將交叉編譯鏈路徑新增進PATH 後執行arm-none-linux-gnueabi-gcc依然
Ubuntu16.04搭建各種開發環境的IDE: QT5 , CodeBlocks ,eclipse-cdt, PyCharm
there CI lin + - .cn 開始 eve GC 分享圖片 搭建Ubuntu下C/C++以及Python的集成開發環境,采用雙系統(Win7+Ubuntu)的Ubuntu16.04-LTS系統, 關於雙系統的搭建可以參考下面博客(圖文十分詳細):https://
eos智慧合約開發-01 ubuntu16.04搭建eos環境
EOS三個元件: • nodeos:服務端區塊鏈節點元件 • cleos:命令列介面,與區塊鏈互動,管理錢包,管理賬戶,在區塊鏈上呼叫方法。(很重要,相當於以太坊web3) • keosd:管理EOSIO錢包的元件。 編譯過程遇到問題如下: 1: clone
Ubuntu12.04的嵌入式開發環境搭建(一)
Ubuntu12.04開發arm體系程式的環境搭建。包括VMware8安裝Ubuntu12.04、minicom的安裝說明、nfs的安裝說明、svn的安裝說明、qt的安裝說明等。 一、VMware8安裝Ubuntu12.04 本機系統: WIN7 虛擬機器:VMwa
Ubuntu12.04的嵌入式開發環境搭建(二)
4.g++的下載安裝 在終端中輸入: sudo apt-get install g++-arm-linux-gnueabi sudo apt-get install gcc-arm-linux-gnueabi 5.qtcreater的下載安裝以及嵌入式開發設定 sudo apt-get install qt
ubuntu16.04搭建優美的開發環境
ubuntu 開發環境的配置 獲取root許可權 在終端中輸入命令: sudo passwd root 會提示讓你輸入ROOT帳號的密碼 Enter new UNIX password: (在
ubuntu16.04搭建oracle環境用於golang開發
映象版本 在docker hub上搜索oracle,隨便找了一個xe 11版本的映象。 docker pull deepdiver
CentOS6.5安裝Qt4.8.6+QtCreator2.6.1
界面 tool tools function -c 方便 安裝 src conf 工作中需要用到Qt在Linux下做開發,公司提供的電腦安裝的CentOS6.2,但是為了和windows下自己使用的QT版本一直,於是也選擇安裝了Qt5.1.0。但是在CentOS下剛開始是無
ubuntu16.04搭建hadoop集群環境
address hadoop 集群 所有 ipv ret 加載文件 keygen -- manager 1. 系統環境Oracle VM VirtualBoxUbuntu 16.04Hadoop 2.7.4Java 1.8.0_111master:192.168.19.12
ubuntu16.04升級 vim 8.0
vim 8.0一,首先安裝依賴sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \ libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \ libcairo2-dev libx1
Ubuntu16.04搭建Postfix作為SMTP服務器
example space ash justify lsb dom ttl .com utils 一、DNS配置 類型 名稱 值 TTL A mail 128.199.254.32 1小時 M
【.NetCore學習】ubuntu16.04 搭建.net core mvc api 運行環境
xen dir ftp arc mov png 運行環境 reg repos 查看linux內核版本 uname -a 打印結果 python@ubuntu:~$ uname -a Linux ubuntu 4.4.0-31-generic #50-Ubuntu SM
基於Ubuntu16.04搭建WordPress
get pre targe -i onf finished eight 沒有 config 安裝 Apache2 在終端輸入該命令 ,使用 apt-get 安裝 Apache2: sudo apt-get install ap
ubuntu16.04安裝jdk1.8
port clas sudo echo apt-get deb文件 which gpo 查看 首先去Oracle官網下載JDK1.8的tar.gz壓縮包。 然後下載下來的包的默認位置應該是在~/下載/下。 執行如下命令解壓縮並安裝JDK。 cd ~/下載/ tar -zxv
ubuntu16.04搭建docker_1.13.1私有倉庫
ubuntu16.04 docker 私有倉庫 registry 1、配置docker的國內加速器docker版本為1.13.1需要配置一下daemon.json配置阿裏雲的docker加速器:wangpeng@ubuntu:~$ sudo vim /etc/docker/daemon.jso