All right ! then you had the worst part done !
[This is way longer than I thought it would be, maybe the start of an actual tutorial here…]
The host is your desktop machine where qtcreator runs.
The target is your BBB.
no tricks there, it will always be that way.
If you are running your desktop in a virtual machine, then you’re desktop is also called a “guest” relatively to your virtual machine’s host (the host of the host) but that’s only if working with VM.
The cross-compile work flow is simple too. on your host you can compile the same source code using either a normal compiler (gcc/g++) of a cross-compiler (arm-poky-linux-gnueabi-g++).
The result of a “normal” compilation is an executable that will run on your “host” machine.
The result of the cross compilation is an executable file made for the ARM processor. If you try to run it on your host machine, it might tell you “cannot execute - format incorrect” because the binary is meant for another processor architecture (x86 / AMD64 …)
you can check the binary information of an executable file with the … “file” command… It can give you something like :
“ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=51665bf2dd325bed09867c8de7da72ceb3955b34, not stripped” … where this is an “ARM” file.
of course QtCreator handles this.
Even sending the ARM binary to your BBB through SSH (you need to include the sftp-server recipe, in your yocto image though).
To qtcreator this is handled in its “Kits”. A Kit is : A qmake + a compiler + a debugger
This is set in the qtcreator options.
For setting up your Kit after building a yocto image you need to do the following :
bitbake meta-toolchain
bitbake meta-toolchain-qt5
cd ./tmp/deploy/sdk
then run every *.sh in there, it will install cross-qmake, cross-compiler and cross-debugger in your /opt/ directory (by default).
in qtcreator’s (options->compile&exec) you can then specify :
- a new “Qt version” (found for exemple here : /opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake)
- a new compiler (found here :/opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++)
- a new debugger (/opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb)
(these path need to be adapted to your configuration).
Now if you select the right kit and press “play”, it SHOULD work…
The problem is, there is more to just qmake, g++ and gdb. To crosscompile there needs to be a set of variables set in your “terminal” environment (compiler flags, qmake options, etc…)
in qtcreator you need to specify your environment in the project options.
what I do is :
cd /opt/poky/1.7.1/
source environment-setup-arm1176jzfshf-vfp-poky-linux-gnueabi
printenv
i then copy the output of printenv and copy that into the project configuration (what qtcreator calls “batch script”) for the BBB kit in the “compile” section. (see screen capture below )

Then you need to start qtcreator as root, and THEN it should work.
Last thing, you need to have the gdbserver bitbaked in your yocto image in order to remotely debug the target from the host…
hope this helped !
Cheers