Difference between revisions of "IoTGateway/BSP/Linux/iMX6/QtCreator"
From ESS-WIKI
(→Debugging the Application) |
|||
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | {{DISPLAYTITLE:Setting-up QtCreator to cross compile for iMX6 series}} | |
+ | {| align="right" | ||
+ | | __TOC__ | ||
+ | |} | ||
+ | <!-- | ||
+ | --> | ||
=Prerequisites= | =Prerequisites= | ||
Line 81: | Line 86: | ||
=Working within QtCreator 3 (Qt4/Qt5)= | =Working within QtCreator 3 (Qt4/Qt5)= | ||
==Installing the QtCreator== | ==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: | + | Please download [http://download.qt.io/official_releases/qtcreator/3.1/3.1.2/ "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 | $ ~/FILES/qt-creator-opensource-linux-x86_64-3.1.2.run | ||
Line 176: | Line 181: | ||
#;[[File:2015-01-30_174034.png]] | #;[[File:2015-01-30_174034.png]] | ||
# Drag & drop one Label widget on main form, use property editor on the right side to change text and font size | # Drag & drop one Label widget on main form, use property editor on the right side to change text and font size | ||
− | #;[[File:2015-01-30_174300.png]] | + | #;[[File:2015-01-30_174300.png]][[File:2015-01-30_174333.png]][[File:2015-01-30_174418.png]] |
− | #;[[File:2015-01- | + | #;[[File:2015-01-30_174555.png]] |
# Save all project files using "File" -> "Save All" | # Save all project files using "File" -> "Save All" | ||
Line 226: | Line 231: | ||
=Working within QtCreator 2 (Qt4 only)= | =Working within QtCreator 2 (Qt4 only)= | ||
==Installing the QtCreator== | ==Installing the QtCreator== | ||
+ | Please download [https://download.qt.io/official_releases/qtcreator/2.8/2.8.1/ "qt-creator-linux-x86_64-opensource-2.8.1.run"], put it to directory ~/FILES/ and install it by following command: | ||
+ | $ ~/FILES/qt-creator-linux-x86_64-opensource-2.8.1.run | ||
+ | |||
==Starting the QtCreator== | ==Starting the QtCreator== | ||
+ | $ source /opt/poky/1.5.3/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi | ||
+ | $ cd ~/qtcreator-2.8.1/ | ||
+ | $ bin/qtcreator | ||
+ | # The QtCreator's main window shows up. | ||
+ | #;[[File:2015-02-03_142536.png]] | ||
+ | # Check QtCreator's version by using "Help" -> "About Qt Creator". | ||
+ | #;[[File:2015-02-03_142607.png]] | ||
+ | |||
==Configuring the Cross-Compiler Options== | ==Configuring the Cross-Compiler Options== | ||
+ | # Bring up the options dialog using "Tools" -> "Options..." | ||
+ | # Select the "Devices" page on the left, and click "Add..." | ||
+ | # Select "Generic Linux Device" and click "Start Wizard". | ||
+ | #;[[File:2015-01-30_165533.png]] | ||
+ | # Specify proper settings and click "Next>" | ||
+ | #;[[File:2015-01-30_165611.png]] | ||
+ | # Click "Finish" | ||
+ | # Device test finished successfully. Click "Close". | ||
+ | #;[[File:2015-01-30_165659.png]] | ||
+ | #:If device test failed, please go back to specify proper settings. | ||
+ | #::[[File:2015-02-24_113504.png]] | ||
+ | #::(It is necessary to set a blank password at least, null password does not work.) | ||
+ | #::<br> | ||
+ | #::[[File:2015-02-24_113635.png]] | ||
+ | #::(It means device's IP is incorrect or some network issues occured.) | ||
+ | # Click "Apply" | ||
+ | # Select the "Build & Run" page on the left, switch to "Compilers" tab, drop down "Add" menu and choose "GCC". | ||
+ | #;[[File:2015-02-24_114150.png]] | ||
+ | # Name the compiler as "iMX6 GCC" | ||
+ | # 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++" | ||
+ | # Click "Apply" | ||
+ | #;[[File:2015-02-24_114748.png]] | ||
+ | # Switch to the "Qt Versions" tab. | ||
+ | # Check if the "Qt 4.8.5 in PATH (System)" is auto detected in "Manual" item ? | ||
+ | #;[[File:2015-02-03_143901.png]] | ||
+ | #:If not, click "Add..." to choose the proper qmake. | ||
+ | # Click "Apply" | ||
+ | #;[[File:2015-02-03_144003.png]] | ||
+ | # Switch to the "Kits" tab. | ||
+ | # Click "Add". | ||
+ | # Name the kit as "iMX6 toolchain" | ||
+ | # Specify the correct "Device Tpye", "Compiler", "Debugger" and "Qt version" | ||
+ | # Click "Browse..." to select "/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi" as sysroot | ||
+ | # Click "Edit" to select "/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb" as Debugger | ||
+ | # Click "Apply" | ||
+ | #;[[File:2015-02-03_150311.png]] | ||
+ | # Click OK to finalize the configuration. | ||
+ | # Invoke the options dialog again to make sure the "iMX6 toolchain" is the default kit. | ||
+ | #;[[File:2015-02-24_132359.png]] | ||
+ | |||
==Creating the Project== | ==Creating the Project== | ||
+ | # Bring up "New" dailog using "File" -> "New File or Project..." | ||
+ | # Select "Applications" -> 'Qt Gui Application" | ||
+ | # Click "Choose..." | ||
+ | #;[[File:2015-02-03_150625.png]] | ||
+ | # Use "hello_qt" as name | ||
+ | # Create in "/home/adv/qt" | ||
+ | # Click "Next" | ||
+ | #;[[File:2015-01-30_173309.png]] | ||
+ | # Uncheck "Desktop" and check "IMX6 toolchain" | ||
+ | # Click "Next". | ||
+ | #;[[File:2015-02-03_150917.png]] | ||
+ | # Use default settings for "Class Information" | ||
+ | # Click "Next" | ||
+ | #;[[File:2015-01-30_173644.png]] | ||
+ | # Use default settings for "Project Management" | ||
+ | # Click "Finish" | ||
+ | #;[[File:2015-01-30_173716.png]] | ||
+ | # Double click "hello_qt.pro" to switch to editor window | ||
+ | # In new project it is necessary to add following two lines into qt project file. | ||
+ | #:<code>target.path = .<br>INSTALLS += target</code> | ||
+ | #;[[File:2015-01-30_173913.png]] | ||
+ | # Press "Ctrl+S" to save file. | ||
+ | # Double click "mainwindow.ui" to switch to Design mode | ||
+ | #;[[File:2015-01-30_174034.png]] | ||
+ | # Drag & drop one Label widget on main form, use property editor on the right side to change text and font size | ||
+ | #;[[File:2015-01-30_174300.png]][[File:2015-01-30_174333.png]][[File:2015-01-30_174418.png]] | ||
+ | #;[[File:2015-01-30_174555.png]] | ||
+ | # Save all project files using "File" -> "Save All" | ||
+ | |||
==Building the Project== | ==Building the Project== | ||
+ | # Switch to "Projects" mode | ||
+ | # Check if "build configuration" is set to "Debug". | ||
+ | #;[[File:2015-02-02_150145.png]] | ||
+ | # Check if "Files to deploy" is correct | ||
+ | #;[[File:2015-02-02_150404.png]] | ||
+ | # Switch to "Edit" mode | ||
+ | # Click "Build" using context menu of project "hello_qt" | ||
+ | #;[[File:2015-02-02_105114.png]] | ||
+ | # The green "Build" bar means no error occured. | ||
+ | #;[[File:2015-02-02_105318.png]] | ||
+ | # Press "Alt+4" to show "Compile Output". | ||
+ | #;[[File:2015-02-02_105551.png]] | ||
+ | |||
==Deploying the Application== | ==Deploying the Application== | ||
+ | # Click "Deploy" using context menu of project hello_qt | ||
+ | #;[[File:2015-02-02_105748.png]] | ||
+ | # The green "Deploy" bar indicates no error occured. | ||
+ | #;[[File:2015-02-02_105934.png]] | ||
+ | |||
==Debugging the Application== | ==Debugging the Application== | ||
+ | # Click debug icon to start debugging. | ||
+ | #;[[File:2015-02-02_110650.png]] | ||
+ | # Press "Alt+3" to show "Application Output" | ||
+ | #;[[File:2015-02-02_110950.png]] | ||
+ | # The "hello_qt" shows up on primary display. | ||
+ | #;[[File:hello_qt.png]] | ||
+ | # Click "stop" to stop debugging. | ||
+ | #;[[File:2015-02-03_092707.png]] | ||
+ | #:Debugging has finished. | ||
+ | #;[[File:2015-02-24_140104.png]] | ||
+ | # The deafult desktop returns back. | ||
+ | #;[[File:qt4_desktop_half.png]] | ||
=References= | =References= |
Latest revision as of 08:31, 9 August 2016
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
- The QtCreator's main window shows up.
- Check QtCreator's version by using "Help" -> "About Qt Creator".
Configuring the Cross-Compiler Options
- Bring up the options dialog using "Tools" -> "Options..."
- Select the "Devices" page on the left, and click "Add..."
- Select "Generic Linux Device" and click "Start Wizard".
- Specify proper settings and click "Next>"
- Click "Finish"
- Device test finished successfully. Click "Close".
- Click "Apply"
- Select the "Build & Run" page on the left, switch to "Compilers" tab, drop down "Add" menu and choose "GCC".
- Name the compiler as "iMX6 GCC"
- 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++"
- Click "Apply"
- Switch to the "Debuggers" tab
- Click "Add"
- Name the debugger as "iMX6 gdb"
- 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"
- Click "Apply"
- Switch to the "Qt Versions" tab.
- For Qt4, check if the "Qt 4.8.5 (System)" is auto detected in "Manual" item ?
- Click "Apply"
- Switch to the "Kits" tab.
- Click "Add".
- Name the kit as "iMX6 toolchain"
- Specify the correct "Device Tpye", "Compiler", "Debugger" and "Qt version"
- Click "Browse..." to select "/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi" as sysroot
- Click Apply
- Click OK to finalize the configuration.
- Invoke the options dialog again to make sure the "iMX6 toolchain" is default kit.
Creating the Project
- Bring up "New" dailog using "File" -> "New File or Project..."
- Select "Applications" -> 'Qt Widgets Application"
- Click "Choose..."
- Use "hello_qt" as name
- Create in "/home/adv/qt"
- Click "Next"
- Uncheck "Desktop" and check "IMX6 toolchain"
- Click "Next".
- Use default settings for "Class Information"
- Click "Next"
- Use default settings for "Project Management"
- Click "Finish"
- Double click "hello_qt.pro" to switch to editor window
- In new project it is necessary to add following two lines into qt project file.
- Press "Ctrl+S" to save file.
- Double click "mainwindow.ui" to switch to Design mode
- Drag & drop one Label widget on main form, use property editor on the right side to change text and font size
- Save all project files using "File" -> "Save All"
Building the Project
- Switch to "Projects" mode
- Check if "build configuration" is set to "Debug".
- Check if "Files to deploy" is correct
- Switch to "Edit" mode
- Click "Build" using context menu of project "hello_qt"
- The green "Build" bar means no error occured.
- Press "Alt+4" to show "Compile Output".
Deploying the Application
- Click "Deploy" using context menu of project hello_qt
- The green "Deploy" bar indicates no error occured.
Debugging the Application
- Click debug icon to start debugging.
- Press "Alt+3" to show "Application Output"
- The "hello_qt" shows up on primary display.
- Click "stop" to stop debugging.
- The deafult desktop returns back.
Working within QtCreator 2 (Qt4 only)
Installing the QtCreator
Please download "qt-creator-linux-x86_64-opensource-2.8.1.run", put it to directory ~/FILES/ and install it by following command:
$ ~/FILES/qt-creator-linux-x86_64-opensource-2.8.1.run
Starting the QtCreator
$ source /opt/poky/1.5.3/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi $ cd ~/qtcreator-2.8.1/ $ bin/qtcreator
- The QtCreator's main window shows up.
- Check QtCreator's version by using "Help" -> "About Qt Creator".
Configuring the Cross-Compiler Options
- Bring up the options dialog using "Tools" -> "Options..."
- Select the "Devices" page on the left, and click "Add..."
- Select "Generic Linux Device" and click "Start Wizard".
- Specify proper settings and click "Next>"
- Click "Finish"
- Device test finished successfully. Click "Close".
- Click "Apply"
- Select the "Build & Run" page on the left, switch to "Compilers" tab, drop down "Add" menu and choose "GCC".
- Name the compiler as "iMX6 GCC"
- 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++"
- Click "Apply"
- Switch to the "Qt Versions" tab.
- Check if the "Qt 4.8.5 in PATH (System)" is auto detected in "Manual" item ?
- Click "Apply"
- Switch to the "Kits" tab.
- Click "Add".
- Name the kit as "iMX6 toolchain"
- Specify the correct "Device Tpye", "Compiler", "Debugger" and "Qt version"
- Click "Browse..." to select "/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi" as sysroot
- Click "Edit" to select "/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb" as Debugger
- Click "Apply"
- Click OK to finalize the configuration.
- Invoke the options dialog again to make sure the "iMX6 toolchain" is the default kit.
Creating the Project
- Bring up "New" dailog using "File" -> "New File or Project..."
- Select "Applications" -> 'Qt Gui Application"
- Click "Choose..."
- Use "hello_qt" as name
- Create in "/home/adv/qt"
- Click "Next"
- Uncheck "Desktop" and check "IMX6 toolchain"
- Click "Next".
- Use default settings for "Class Information"
- Click "Next"
- Use default settings for "Project Management"
- Click "Finish"
- Double click "hello_qt.pro" to switch to editor window
- In new project it is necessary to add following two lines into qt project file.
- Press "Ctrl+S" to save file.
- Double click "mainwindow.ui" to switch to Design mode
- Drag & drop one Label widget on main form, use property editor on the right side to change text and font size
- Save all project files using "File" -> "Save All"
Building the Project
- Switch to "Projects" mode
- Check if "build configuration" is set to "Debug".
- Check if "Files to deploy" is correct
- Switch to "Edit" mode
- Click "Build" using context menu of project "hello_qt"
- The green "Build" bar means no error occured.
- Press "Alt+4" to show "Compile Output".
Deploying the Application
- Click "Deploy" using context menu of project hello_qt
- The green "Deploy" bar indicates no error occured.
Debugging the Application
- Click debug icon to start debugging.
- Press "Alt+3" to show "Application Output"
- The "hello_qt" shows up on primary display.
- Click "stop" to stop debugging.
- The deafult desktop returns back.