Contents ...
udn網路城邦
搭建ARM + Qt 4.7.1的嵌入式開發環境
2015/11/03 15:44
瀏覽1,041
迴響0
推薦0
引用0
一、安裝交叉編譯工具鏈

1、在  /etc/apt/sources.list 中添加源:deb http://www.emdebian.org/debian/ stable main

(教育網IPV6用戶推薦:deb http://debian6.ustc.edu.cn/emdebian/toolchains/ stable main)

2、安裝相應包:

# apt-get update

# apt-get install cpp-4.3-arm-linux-gnueabi g++-4.3-arm-linux-gnueabi gcc-4.3-arm-linux-gnueabi gobjc++-4.3-arm-linux-gnueabi gobjc-4.3-arm-linux-gnueabi


二、編譯安裝 PC 版的 Qt

$ ./configure -opensource -confirm-license

$ make -j4

# make install

設置環境變量,在~/.bashrc 中加入:

export PATH=/usr/local/Trolltech/Qt-4.7.1/bin:${PATH}

export LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.7.1/lib:${LD_LIBRARY_PATH}

$ source ~/.bashrc


三、編譯 qvfb

切換到目錄:qt-everywhere-opensource-src-4.7.1/tools/qvfb

$ export CPLUS_INCLUDE_PATH=../../include/QtCore

$ qmake

$ make -j4

# cp ../../bin/qvfb /usr/local/Trolltech/Qt-4.7.1/bin/


四、編譯安裝 arm 版的 Qt

1、 $ ./configure -opensource -confirm-license -embedded arm -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb

中途出錯,修改qt-everywhere-opensource-src-4.7.1/mkspecs/default/qmake.conf 後繼續configure,修改如下:

# modifications to g++.conf

QMAKE_CC                = arm-linux-gnueabi-gcc

QMAKE_CXX               = arm-linux-gnueabi-g++

QMAKE_LINK              = arm-linux-gnueabi-g++

QMAKE_LINK_SHLIB        = arm-linux-gnueabi-g++

# modifications to linux.conf

QMAKE_AR                = arm-linux-gnueabi-ar cqs

QMAKE_OBJCOPY           = arm-linux-gnueabi-objcopy

QMAKE_STRIP             = arm-linux-gnueabi-strip

2、$ make -j4

3、# make install

 相關閱讀:The Virtual Framebuffer,The VNC Protocol and Qt for Embedded Linux


五、安裝qemu,在 PC 中運行 arm 程序

(由於源中的 qemu 和工具鏈不匹配,安裝新的 qemu-0.13.0  。)

$ ./configure

$ make -j4

# make install


六、測試

1、測試著名的 helloworld(假設~/arm/ 中有 helloworld.c)

$  arm-linux-gnueabi-gcc -o helloworld helloworld.c

(查看文件信息 $ file helloworld,可見:ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped)

$ qemu-arm -L /usr/arm-linux-gnueabi/ ~/arm/helloworld

如果一切正常,可看到經典輸出。

2、測試 Qt 程序

$ qvfb -width 800 -height 600 &

$ qemu-arm -L /usr/arm-linux-gnueabi/ /usr/local/Trolltech/QtEmbedded-4.7.1-arm/demos/affine/affine -qws

如果一切正常,可看到如本文開篇所示的結果。

限會員,要發表迴響,請先登入