Developing with Ubuntu Qt Creator ToolChain for Angstrom Beaglebone (Arm Cortex-a8)
-
[quote author="blaroche" date="1350091911"]
@
./configure ... -embedded arm -little-endian -host-big-endian ...
@
[/quote][quote author="NuckNuck" date="1350093758"]
@
qfilesystementry.o: file not recognized: File format not recognized
@
[/quote]
...isn't x86_64 little-endian? -
[quote author="NuckNuck" date="1350093758"]
...isn't x86_64 little-endian?[/quote]
i've never tried on a 64bit machine, good suggestion, thank you.
try this configure.
but first, cleanup. run
make confclean./configure -v -opensource -confirm-license -xplatform qws/linux-arm-gnueabi-g++ -embedded arm -little-endian -host-little-endian -prefix /usr/local/beaglebone/qt4.8-arm -no-cups -no-accessibility -reduce-relocations -no-nas-sound -no-sm -no-nis -qt-libjpeg -qt-libpng -qt-zlib -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-pch -no-dbus -no-glib -no-phonon -no-phonon-backend -no-webkit -no-multimedia -no-audio-backend -no-qt3support -nomake examples -nomake demos -nomake docs -nomake translations -no-qt3support -exceptions -no-fast
-
I did * make confclean* which make claimed it couldn't find any target file/config so i just did the ./configure above with the last post that includes the little-endian flag and now I recieve this error, Thanks again for the help I'm excited to get to BeagleBone programming
_
root@000000000:~/qt-everywhere-opensource-src-4.8.3# ./configure -v -opensource -confirm-license -xplatform qws/linux-arm-gnueabi-g++ -embedded arm -little-endian -host-big-endian -prefix /usr/local/beaglebone/qt4.8-arm -no-cups -no-accessibility -reduce-relocations -no-nas-sound -no-sm -no-nis -qt-libjpeg -qt-libpng -qt-zlib -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-pch -no-dbus -no-glib -no-phonon -no-phonon-backend -no-webkit -no-multimedia -no-audio-backend -no-qt3support -nomake examples -nomake demos -nomake docs -nomake translations -no-qt3support -exceptions -no-fast
Determining system architecture... (Linux:3.2.0-32-generic:x86_64)
64-bit AMD 80x86 (x86_64)
'arm' is supported
'x86_64' is supported
System architecture: 'arm'
Host architecture: 'x86_64'You have not explicitly asked to use pkg-config and are cross-compiling.
pkg-config will not be used to automatically query cflag/lib parameters for
dependenciesSymbol visibility control enabled.
Symbolic function binding enabled.This is the Qt for Embedded Linux Open Source Edition.
You are licensed to use this software under the terms of
the Lesser GNU General Public License (LGPL) versions 2.1.
You are also licensed to use this software under the terms of
the GNU General Public License (GPL) versions 3.You have already accepted the terms of the license.
Creating qmake. Please wait...
/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++ -c -o option.o -pipe -m64 -DQMAKE_OPENSOURCE_EDITION -g -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -Igenerators/symbian -Igenerators/integrity -I/home/xenland/qt-everywhere-opensource-src-4.8.3/include -I/home/xenland/qt-everywhere-opensource-src-4.8.3/include/QtCore -I/home/xenland/qt-everywhere-opensource-src-4.8.3/src/corelib/global -I/home/xenland/qt-everywhere-opensource-src-4.8.3/src/corelib/xml -I/home/xenland/qt-everywhere-opensource-src-4.8.3/tools/shared -DQT_NO_PCRE -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL -DQT_NO_COMPRESS -I/home/xenland/qt-everywhere-opensource-src-4.8.3/mkspecs/qws/linux-x86_64-g++ -DHAVE_QCONFIG_CPP -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DEPRECATED option.cpp
cc1plus: error: unrecognized command line option "-m64"
make: *** [option.o] Error 1
_ -
Hmm... Google suggests that the "-m64" is not supported by these cross-compilers. I don't have a 64-bit machine, so I'm not sure where that is being set.
Go to your Qt root folder and call this to find out:
@
grep m64 *
@You might be able to manually remove the flag and continue.
-
hmm. lets go back and see if we can find a smaller configure that you can build on.
see where you get with this one:
@./configure -v -opensource -confirm-license -xplatform qws/linux-arm-gnueabi-g++ -embedded arm -little-endian -host-big-endian -prefix /usr/local/beaglebone/qt4.8-arm @then maybe try this:
@./configure -v -opensource -confirm-license -xplatform qws/linux-arm-gnueabi-g++ -embedded arm -prefix /usr/local/beaglebone/qt4.8-arm @i'm with JSKH, i've never cross compiled on 64 bit.
-
[quote author="blaroche" date="1350134211"]hmm. lets go back and see if we can find a smaller configure that you can build on.
see where you get with this one:
@./configure -v -opensource -confirm-license -xplatform qws/linux-arm-gnueabi-g++ -embedded arm -little-endian -host-big-endian -prefix /usr/local/beaglebone/qt4.8-arm @
[/quote]That first configure seems to have done the trick, This was the end result
@
Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into /usr/local/beaglebone/qt4.8-armTo reconfigure, run 'make confclean' and 'configure'.
@So i ran make and recieved the following error
@make[1]: arm-none-linux-gnueabi-g++: Command not found
make[1]: *** [.obj/release-shared-emb-arm/qabstractanimation.o] Error 127
make[1]: Leaving directory `/home/xenland/qt-everywhere-opensource-src-4.8.3/src/corelib'
make: *** [sub-corelib-make_default-ordered] Error 2@Its odd that it says its trying to execute arm-none-linux-gnueabi-g++
-
check your mkspecs again.
look at this file:
/home/xenland/qt-everywhere-opensource-src-4.8.3/mkspecs/qws/linux-arm-gnueabi-g++/qmake.confyou should see stuff for:
arm-angstrom-linux-gnueabi-*
not
arm-none-linux-gnueabi-*should look like the below:
@ #
# qmake configuration for building with arm-none-linux-gnueabi-g++
#include(../../common/linux.conf) include(../../common/gcc-base-unix.conf) include(../../common/g++-unix.conf) include(../../common/qws.conf) # modifications to g++.conf QMAKE_CC = arm-angstrom-linux-gnueabi-gcc QMAKE_CXX = arm-angstrom-linux-gnueabi-g++ QMAKE_LINK = arm-angstrom-linux-gnueabi-g++ QMAKE_LINK_SHLIB = arm-angstrom-linux-gnueabi-g++ # modifications to linux.conf QMAKE_AR = arm-angstrom-linux-gnueabi-ar cqs QMAKE_OBJCOPY = arm-angstrom-linux-gnueabi-objcopy QMAKE_STRIP = arm-angstrom-linux-gnueabi-strip load(qt_config)
@
-
The conf file was saying the arm-none so I changed it to the one you provided and I get relativly the same error take a look:
@
xenland@000000000:~/qt-everywhere-opensource-src-4.8.3$ make
cd src/tools/bootstrap/ && make -f Makefile
make[1]: Entering directory/home/xenland/qt-everywhere-opensource-src-4.8.3/src/tools/bootstrap' make[1]: Nothing to be done for
first'.
make[1]: Leaving directory/home/xenland/qt-everywhere-opensource-src-4.8.3/src/tools/bootstrap' cd src/tools/moc/ && make -f Makefile make[1]: Entering directory
/home/xenland/qt-everywhere-opensource-src-4.8.3/src/tools/moc'
/home/xenland/qt-everywhere-opensource-src-4.8.3/bin/qmake -spec ../../../mkspecs/qws/linux-x86_64-g++ -o Makefile moc.pro
make[1]: Leaving directory/home/xenland/qt-everywhere-opensource-src-4.8.3/src/tools/moc' make[1]: Entering directory
/home/xenland/qt-everywhere-opensource-src-4.8.3/src/tools/moc'
make[1]: Nothing to be done forfirst'. make[1]: Leaving directory
/home/xenland/qt-everywhere-opensource-src-4.8.3/src/tools/moc'
cd src/tools/rcc/ && make -f Makefile
make[1]: Entering directory/home/xenland/qt-everywhere-opensource-src-4.8.3/src/tools/rcc' make[1]: Nothing to be done for
first'.
make[1]: Leaving directory/home/xenland/qt-everywhere-opensource-src-4.8.3/src/tools/rcc' cd src/tools/uic/ && make -f Makefile make[1]: Entering directory
/home/xenland/qt-everywhere-opensource-src-4.8.3/src/tools/uic'
make[1]: Nothing to be done forfirst'. make[1]: Leaving directory
/home/xenland/qt-everywhere-opensource-src-4.8.3/src/tools/uic'
cd src/corelib/ && make -f Makefile
make[1]: Entering directory `/home/xenland/qt-everywhere-opensource-src-4.8.3/src/corelib'
arm-angstrom-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DELF_INTERPRETER="/lib64/ld-linux-x86-64.so.2" -DHB_EXPORT=Q_CORE_EXPORT -DQT_NO_DEBUG -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/qws/linux-arm-gnueabi-g++ -I. -I../../include -I../../include/QtCore -I.rcc/release-shared-emb-arm -Iglobal -I../3rdparty/zlib -I../3rdparty/harfbuzz/src -I../3rdparty/md5 -I../3rdparty/md4 -I.moc/release-shared-emb-arm -o .obj/release-shared-emb-arm/qabstractanimation.o animation/qabstractanimation.cpp
make[1]: arm-angstrom-linux-gnueabi-g++: Command not found
make[1]: *** [.obj/release-shared-emb-arm/qabstractanimation.o] Error 127
@ -
now looks like the toolchain binaries aren't found in your PATH var.
source the toolchain env file, type:
source /usr/local/angstrom/arm/environment-setupthen type:
arm-angstrom-linux and hit tab a few times and make sure it can find arm-angstrom-linux-gnueabi-g++see if that gets you further.