As far as I know, the Angstrom toolchain comes with qmake for qt-embedded, the Linaro toolchain does not, hence the reason for cross compiling Qt.
When you cross compile Qt, you end up with an installation folder (like /opt/qt or /usr/local/qt). This folder is where you point Qt Creator (Tools -> Options -> Build & Run -> Qt Versions). Qt Creator can then use the qmake executable, under the bin folder, to create your application to run on the BBB. In fact, you shouldn't need to compile the whole Qt project, just enough of the qmake tools to build apps to match the Qt version already installed on the BBB. Running 'ldd <app_name>' on your host will result in "not a dynamic executable", because it is an ARM binary. But if you transfer the binary file to the BBB and run ldd again it will show you the proper output. Louis On Monday, January 13, 2014 9:31:27 AM UTC-6, dlewin555 wrote: > > Mirko : > Thanks for your answer. > Actually, I left Angstrom for a while ( independantly that it's going to > be replaced by Debian) so intend to use Debian instead. Nevertheless, I > suppose that it's not far from what you have done with Angstrom anyway. > > > > > > > 2014/1/13 Mirko Fucci <[email protected] <javascript:>> > >> >> I experienced a simpler way to work with qt embedded for BBB following >> Derek Tutorial >> http://www.youtube.com/watch?v=kP7uvOu9hoQ where you don't need to cross >> compile >> QT: >> >> - install toolchain on your host >> - install qt4-embedded on BBB (opkg install qt4-embedded - fors-depends >> - create on your host a QT creator version from (/usr/local/angstrom/... >> qmake2) >> - create your kit to deploy app in BBB >> >> The only problem i had is that installing qt4-embedded i had no >> linuxinput driver support for keyboard (because it'not in the default QT i >> guess) >> so i had to cross-compile qt as shown in Meir tutorial( >> http://www.cloud-rocket.com/2013/07/building-qt-for-beaglebone/) with >> configure: >> >> ./configure -v -opensource -confirm-license -prefix /opt/qt -embedded arm >> -platform qws/linux-x86-g++ -xplatform qws/linux-am335x-g++ -depths 16,24 >> ,32 -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-cups -no-largefile - >> no-accessibility -no-openssl -no-gtkstyle -qt-mouse-pc -qt-mouse-linuxtp >> -qt-mouse-linuxinput -plugin-mouse-linuxtp -plugin-mouse-pc -fast -little >> -endian -host-big-endian -no-pch -no-sql-ibase -no-sql-mysql -no-sql-odbc >> -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-webkit -no-qt3support >> -nomake >> examples -nomake demos -nomake docs -nomake translations >> -qt-kbd-linuxinput >> >> then to make mouse and keyboard work you have copy plugins dir in /opt/qt >> from your host to Beaglebone black and export like this before run your app: >> >> QWS_MOUSE_PROTO = "LinuxInput:/dev/input/touchscreen0 >> MouseMan:/dev/input/mouse1" Touchscreen and mouse >> >> QWS_KEYBOARD = "LinuxInput:/dev/input/event2 >> LinuxInput:/dev/input/event3:keymap=.../it.qmap" LDC keys and my usb >> keyboard mapped to italian layout >> >> QT_PLUGIN_PATH = "/opt/qt/plugins" needed for keyboard and MouseMan >> drivers >> >> It was very but at the end everything works fine ! >> >> >> >> >> >> >> >> >> >> >> Il giorno venerdì 10 gennaio 2014 22:18:22 UTC+1, [email protected] ha >> scritto: >> >>> I used the instructions and got a working BBB with a CAP LCD7. However I >>> needed to cut the eMMC lines to the LCD CAP (BeagleToys one), it is a A3 >>> Ref but still did not work, but the site say is 100% BBB compatible.. ha ha >>> . The only thing that does not work is the mouse when used with the LCD >>> CAP, but that is not a problem to me as I used the touch screen. I made a >>> document up with the instructions as I had to change some things to get the >>> GUI , GDD and LCD cap working. >>> >>> I also think QT creator has a bug , one has to delete the xx.user file >>> and then setup the kit, else you cannot change the kit, it still uses the >>> original kit. So just be sure to select the correct kit when started after >>> the .user file was was deleted. >>> >>> It works great !! >>> >>> >>> Building and setting up QT environment for BeagleBone >>> >>> There are too few information available on how to easily setup QT >>> environment for building Beaglebone applications (command line or GUI). In >>> this tutorial we will compile QT and setup the environment from scratch. >>> 1. My environment >>> >>> - >>> >>> Host: Ubuntu 13.10 64bit (VB) >>> - >>> >>> Target: BeagleBone Black running Angstrom >>> - >>> >>> QT: 4.8.5 >>> >>> 2. Setup Angstrom cross-compile toolchain for Linux >>> >>> Download : >>> >>> - >>> >>> angstrom-2011.03-x86_64-linux-armv7a-linux-gnueabi- >>> >>> toolchain-qte-4.6.3.tar.bz2<http://www.angstrom-distribution.org/toolchains/angstrom-2011.03-x86_64-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2> >>> for 64bit host or >>> - >>> >>> angstrom-2011.03-i686-linux-armv7a-linux-gnueabi- >>> >>> toolchain-qte-4.6.3.tar.bz2<http://www.angstrom-distribution.org/toolchains/angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2> >>> for x86 (or download more recent version at >>> >>> http://www.angstrom-distribution.org/toolchains/). >>> - >>> >>> https://googledrive.com/host/0B3Z340LOBulvMG5NRmNlZEppSEE >>> >>> Run >>> >>> $> tar -C / -xjf angstrom-2011.03-i686-linux-armv7a-linux-gnueabi- >>> toolchain-qte-4.6.3.tar.bz2 >>> 3. Download and un-tar QT >>> >>> > wget http://download.qt-project.org/official_releases/qt/4.8/ >>> 4.8.5/qt-everywhere-opensource-src-4.8.5.tar.gz >>> >>> > tar -xzf qt-everywhere-opensource-src-4.8.5.tar.gz >>> >>> > mv qt-everywhere-opensource-src-4.8.5 qt-4.8.5-beagle >>> >>> >>> 4. Create qmake.conf >>> >>> > cd qt-4.8.5-beagle >>> >>> > mkdir ./mkspecs/qws/linux-am335x-g++ >>> >>> > cp ./mkspecs/qws/linux-arm-g++/qplatformdefs.h >>> ./mkspecs/qws/linux-am335x-g++ >>> >>> > touch ./mkspecs/qws/linux-am335x-g++/qmake.conf >>> >>> >>> Add the following to qmake.conf with your favorite editor: >>> >>> # >>> >>> # qmake configuration for building with arm-linux-g++ >>> >>> # >>> >>> include(../../common/linux.conf) >>> >>> include(../../common/gcc-base-unix.conf) >>> >>> include(../../common/g++-unix.conf) >>> >>> include(../../common/qws.conf) >>> >>> >>> >>> # modifications to g++.conf >>> >>> #Toolchain >>> >>> >>> >>> #Compiler Flags to take advantage of the ARM architecture >>> >>> QMAKE_CFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon >>> -mfloat-abi=softfp >>> >>> QMAKE_CXXFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon >>> -mfloat-abi=softfp >>> >>> >>> >>> QMAKE_CC = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/gcc >>> >>> QMAKE_CXX = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++ >>> >>> QMAKE_LINK = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++ >>> >>> QMAKE_LINK_SHLIB = /usr/local/angstrom/arm/arm- >>> angstrom-linux-gnueabi/bin/g++ >>> >>> >>> >>> # modifications to linux.conf >>> >>> QMAKE_AR = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/ar cqs >>> >>> QMAKE_OBJCOPY = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/ >>> objcopy >>> >>> QMAKE_STRIP = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/ >>> strip >>> >>> >>> >>> load(qt_config) >>> 5. Configure QT embedded >>> >>> ./configure -v -opensource -confirm-license -prefix /opt/qt -embedded >>> arm -platform qws/linux-x86-g++ -xplatform qws/linux-am335x-g++ -depths >>> 16,24,32 -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-cups -no-largefile >>> -no-accessibility -no-openssl -no-gtkstyle -qt-mouse-pc -qt-mouse-linuxtp >>> -qt-mouse-linuxinput -plugin-mouse-linuxtp -plugin-mouse-pc -fast >>> -little-endian -host-big-endian -no-pch -no-sql-ibase -no-sql-mysql >>> -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-webkit >>> -no-qt3support -nomake examples -nomake demos -nomake docs -nomake >>> translations -qt-mouse-tslib >>> 6. Build and install >>> >>> > make -j 4 >>> >>> > sudo make install >>> 7. Install Qt SDK (lib) we built previously on your board >>> >>> Make sure you beaglebone is connected to your host (assume ip >>> =192.168.7.2 USB) >>> >>> - >>> >>> ssh to your beaglebone (ssh [email protected]) >>> >>> >>> - >>> >>> Create dir structure from your prefix: >>> >>> > root@beaglebone:/# mkdir /opt >>> >>> >>> > root@beaglebone:/# mkdir /opt/qt >>> >>> > opkg install tslib-calibrate >>> >>> > ts-all >>> >>> > ts-calibrate (calibrate all points) >>> >>> > update-rc.d -f gdm remove >>> >>> > systemctl disable gdm.service >>> >>> > reboot >>> >>> >>> - >>> >>> Copy lib from your host to beagle (after reboot): >>> >>> > scp -r /opt/qt/lib [email protected]:"/opt/qt" >>> - >>> >>> Add the lib directory to path by editing /etc/profile and adding: >>> >>> PATH="...:/opt/qt/lib" >>> - >>> >>> NS run applications preceding with >>> - >>> >>> export QWS_MOUSE_PROTO=LinuxInput:/dev/input/eventx >>> >>> Note x could be 0 or 1 depending on your setup >>> >>> AND >>> - >>> >>> ./xxxxx -qws where xxxx is your application >>> >>> 8. Download, install and configure QT Creator >>> >>> I suggest installing QT Creator using regular installer: >>> >>> Download >>> - >>> >>> >>> qt-creator-linux-x86-opensource-2.8.0.run<http://download.qt-project.org/official_releases/qtcreator/2.8/2.8.0/qt-creator-linux-x86-opensource-2.8.0.run> >>> for >>> x86 or >>> - >>> >>> >>> qt-creator-linux-x86_64-opensource-2.8.0.run<http://download.qt-project.org/official_releases/qtcreator/2.8/2.8.0/qt-creator-linux-x86_64-opensource-2.8.0.run> >>> for >>> 64bit >>> >>> > chmod +x qt-creator-linux-x86_64-opensource-2.8.0.run >>> /qt-creator-linux-x86_64-opensource-2.8.0.run >>> - >>> >>> Follow installation Wizard >>> - >>> >>> Run Angstrom toolchain environment setup: >>> >>> > . /usr/local/angstrom/arm/environment-setup >>> >>> Test with > qmake2 and see if it response without error(not existing) >>> >>> Open Qt Creator and >>> - >>> >>> Configure *Qt version * >>> >>> >>> 1. Go to Tools->Options->Build & Run->Qt Versions and click *Add * >>> >>> >>> 2. Select qmake.conf from /opt/qt/bin >>> >>> >>> 3. Click *Ok * >>> >>> >>> - >>> >>> Configure target *device connection* >>> >>> >>> 1. Go to Tools->Options->Devices >>> >>> >>> 2. Click Add and select *Generic Linux Device * >>> >>> >>> 3. Add IP 192.168.7.2, User: root >>> >>> >>> 4. Set name to “Beaglebone” >>> >>> >>> 5. Click Ok >>> >>> >>> - >>> >>> Configure *Compiler * >>> >>> >>> 1. Go to Tools->Options->Build & Run->Compilers and click Add->GCC >>> >>> >>> 2. Select compiler path: >>> /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++ >>> >>> >>> >>> 3.Click Ok >>> >>> >>> - >>> >>> Configure* Kit * >>> >>> >>> 1. Go to Tools->Options->Build & Run->Kits and click Add >>> >>> >>> 2. Call new kit Beaglebone >>> >>> >>> 3. Select device type: “Generic Linux Device” >>> >>> >>> 4. Select the device you previously created >>> >>> >>> 5. Select compiler you created >>> >>> >>> 6. Select Qt version you created >>> >>> >>> - >>> >>> Select GDK path as >>> /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gdk >>> >>> >>> >>> 1. Click Ok (not found !! ) >>> - >>> >>> Configure GDB >>> >>> 1 Goto Tools > Options > Build & Run, >>> >>> 2. set Debugger > Edit to /usr/local/angstrom/arm/bin/ >>> arm-angstrom-linux-gnueabi-gdb >>> >>> 9. Build Qt application >>> >>> - >>> >>> Create new project (File->New project->Qt Project->Qt Console >>> application) >>> - >>> >>> Edit your project (.pro) file >>> - >>> >>> Add the following after “TARGET=…” line: >>> >>> target.files = <YOUR EXECUTABLE NAME> >>> >>> >>> target.path = /home/root >>> >>> >>> INSTALLS = target >>> - >>> >>> Go to Projects -> Run, you should see on “Files to deploy” table >>> your “target” settings >>> >>> >>> - >>> >>> Now you are ready to build and deploy you project on your target >>> board >>> >>> >>> - >>> >>> The following example application should print Hello world inside >>> your console: >>> >>> #include <QCoreApplication> >>> >>> #include <iostream> >>> >>> >>> int main(int argc, char *argv[]) >>> >>> { >>> >>> QCoreApplication a(argc, argv); >>> >>> std::cout << "hello world" << std::endl; >>> >>> return a.exec(); >>> >>> } >>> >>> >>> >>> >>> -- >> For more options, visit http://beagleboard.org/discuss >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "BeagleBoard" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/beagleboard/mb1R6NF5RH4/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected] <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
