IoTGateway/BSP/Linux/iMX6/QtCreator

From ESS-WIKI
Revision as of 09:59, 10 March 2016 by Winston.huang (talk | contribs) (Configuring the Cross-Compiler Options)
Jump to: navigation, search

Yocto User Guide - How to setup QtCreator to cross compile for iMX6 series

Prerequisites

All operations in this guide are based on Ubuntu 12.04 LTS 64bit only.
First please install Ubuntu 12.04 LTS 64bit* with minimum 2GB memory.
* ubuntu-12.04.1-desktop-amd64.iso

Installing required packages

Please login and perform the following commands:

$ sudo apt-get install ssh
$ sudo apt-get install ia32-libs libx11-dev:i386 libreadline6-dev:i386 \
libgl1-mesa-glx:i386 zlib1g-dev:i386 uuid-dev:i386 liblzo2-dev:i386 \ 
libncurses5-dev:i386
$ sudo apt-get install \
bison build-essential ccache dpkg flex gcc g++ gettext intltool \
libarchive-zip-perl libfreetype6-dev libdbus-glib-1-dev liborbit2-dev \
libxml2-dev libx11-dev libgtk2.0-dev liblzo2-2 libtool m4 \
patch rpm tcl uboot-mkimage uuid zlib1g zlib1g-dev \
git gnupg flex bison gperf build-essential  zip \
curl libc6-dev libncurses5-dev x11proto-core-dev libx11-dev:i386 \
libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib \
mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 \
gcc-4.6 g++-4.6 cpp-4.6 gcc-4.6-multilib uuid-dev liblzo2-dev \
uboot-mkimage libarchive-zip-perl \
wget git-core unzip texinfo gawk diffstat build-essential chrpath \
sed cvs subversion coreutils texi2html \
docbook-utils python-pysqlite2 help2man make gcc g++ \
desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial \
autoconf automake groff curl lzop asciidoc xterm
$ sudo apt-get install libncurses5-dev:i386 liblzo2-dev:i386 uuid-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
$ tar zcvf ~/usr_lib_i386-linux-gnu_for_Building_Android_KK.tar.gz \
/usr/lib/i386-linux-gnu/{libuuid.a,libuuid.so,liblzo2.so,liblzo2.a}
$ sudo apt-get install uuid-dev liblzo2-dev
$ sudo tar zxvf ~/usr_lib_i386-linux-gnu_for_Building_Android_KK.tar.gz -C /

Installing JDK

Please download "jdk-6u45-linux-x64.bin" manually, put it to directory ~/FILES/ and perform the following commands:

$ cd /usr/lib
$ sudo ~/FILES/jdk-6u45-linux-x64.bin
$ sudo mkdir jvm
$ cd jvm
$ sudo mv ../jdk1.6.0_45 .
$ cd jdk1.6.0_45/
$ sudo update-alternatives --install /usr/bin/java    java    /usr/lib/jvm/jdk1.6.0_45/jre/bin/java    2
$ sudo update-alternatives --install /usr/bin/javac   javac   /usr/lib/jvm/jdk1.6.0_45/bin/javac   2
$ sudo update-alternatives --install /usr/bin/jar     jar     /usr/lib/jvm/jdk1.6.0_45/bin/jar     2
$ sudo update-alternatives --install /usr/bin/javap   javap   /usr/lib/jvm/jdk1.6.0_45/bin/javap   2
$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_45/bin/javadoc 2
$ sudo update-alternatives --config javap
$ sudo update-alternatives --config javadoc
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config jar
$ cd ~/
$ sudo sh -c "echo "JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45" >> /etc/environment"

Installing cross toolchain

Please use bitbake command to build one toolchain installer or get a pre-built one.

Qt4 SDK

Please perform following command to make toolchain installer.
$ bitbake fsl-image-x11 -c populate-sdk
Please change working directory to where installer located and perform the following command.
$ sudo ./poky-eglibc-x86_64-fsl-image-x11-cortexa9hf-vfp-neon-toolchain-qt4-1.5.3.sh

Qt5 SDK

Please perform following command to make toolchain installer.
$ bitbake fsl-image-x11-qt5 -c populate-sdk
Please change working directory to where installer located and perform the following command.
$ sudo ./poky-eglibc-x86_64-fsl-image-x11-qt5-cortexa9hf-vfp-neon-toolchain-1.5.3.sh


Working within QtCreator 3 (Qt4/Qt5)

Installing the QtCreator

Please download "qt-creator-opensource-linux-x86_64-3.1.2.run", put it to directory ~/FILES/ and install it by following command:

$ ~/FILES/qt-creator-opensource-linux-x86_64-3.1.2.run

Starting the QtCreator

$ source /opt/poky/1.5.3/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
$ cd ~/qtcreator-3.1.2/
$ bin/qtcreator
  1. The QtCreator's main window shows up.
    2015-02-03 153341.png
  2. Check QtCreator's version by using "Help" -> "About Qt Creator".
    2015-01-30 165420.png

Configuring the Cross-Compiler Options

  1. Bring up the options dialog using "Tools" -> "Options..."
  2. Select the "Devices" page on the left, and click "Add..."
  3. Select "Generic Linux Device" and click "Start Wizard".
    2015-01-30 165533.png
  4. Specify proper settings and click "Next>"
    2015-01-30 165611.png
  5. Click "Finish"
  6. Device test finished successfully. Click "Close".
    2015-01-30 165659.png

    If device test failed, please go back to specify proper settings.
    2015-02-24 113504.png
    (It is necessary to set a blank password at least, null password does not work.)

    2015-02-24 113635.png
    (It means device's IP is incorrect or some network issues occured.)
  7. Click "Apply"
  8. Select the "Build & Run" page on the left, switch to "Compilers" tab, drop down "Add" menu and choose "GCC".
    2015-01-30 165904.png
  9. Name the compiler as "iMX6 GCC"
  10. Click "Browse..." to select "/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++"
  11. Click "Apply"
    2015-01-30 171806.png
  12. Switch to the "Debuggers" tab
  13. Click "Add"
  14. Name the debugger as "iMX6 gdb"
  15. Click "Browse..." to select "/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb"
  16. Click "Apply"
    2015-01-30 171323.png
  17. Switch to the "Qt Versions" tab.
  18. For Qt4, check if the "Qt 4.8.5 (System)" is auto detected in "Manual" item ?
    2015-02-17 170318.png
    For Qt5, check if the "Qt 5.2.1 in PATH (qt5)" is auto detected in "Manual" item ?
    2015-02-03 090959.png
    If not, click "Add..." to choose the proper qmake.
  19. Click "Apply"
    For Qt4:
    2015-01-30 170530.png
    For Qt5:
    2015-02-03 091121.png
  20. Switch to the "Kits" tab.
  21. Click "Add".
  22. Name the kit as "iMX6 toolchain"
  23. Specify the correct "Device Tpye", "Compiler", "Debugger" and "Qt version"
  24. Click "Browse..." to select "/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi" as sysroot
  25. Click Apply
    For Qt4:
    2015-01-30 172609.png
    For Qt5:
    2015-02-03 090548.png
  26. Click OK to finalize the configuration.
  27. Invoke the options dialog again to make sure the "iMX6 toolchain" is default kit.
    2015-01-30 172812.png

Creating the Project

Building the Project

Deploying the Application

Debugging the Application


Working within QtCreator 2 (Qt4 only)

Installing the QtCreator

Starting the QtCreator

Configuring the Cross-Compiler Options

Creating the Project

Building the Project

Deploying the Application

Debugging the Application

References

  1. 12.04 LTS (Precise Pangolin)
  2. Java Archive - SE 6
  3. Project Development Manual
  4. Creator Files at SourceForge.net