1. 程式人生 > >在ubuntu16.04搭建Qt4.8.6嵌入式開發環境

在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

中間使用到的

gcc版本:gcc-4.4.3.tar.gz

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安裝

切換到對應目錄,直接

./qt-creator-linux-x86_64-opensource-2.5.2.bin執行按照介面提示操作即可

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