PDA

View Full Version : Qt compilation error



saul.andrade
10th March 2011, 00:56
Good Night to you all,

I'm quite new to Qt and would be really delighted to be able to use it in some of my personal projects. I've done a fair amount of reading about the tools and means to develop using Qt by now, and by any means I will ask for somebody to solve a problem for me.

However I came across several Issues that I will now report, hoping that someone is already past them, here they are:

Beagle Board

I am trying to set Qt creator to work with a beagle board I possess, and I'm having a hard time compiling Qt-everywhere-4.7.2 for the armv7a architecture...here are the commands I`ve been trying:
configuring qt

./configure -prefix /home/saul/qt-arm -embedded arm -platform /qws/linux-x86_64-g++ -xplatform /qws/linux-angstrom-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
I'm aware I'm not enabling tslib support
the configure step goes on ok, but when I try to "make" I get:

In file included from ../../include/QtCore/qatomic_arm.h:1:0,
from ../../include/QtCore/../../src/corelib/arch/qatomic_arch.h:54,
from ../../include/QtCore/qatomic_arch.h:1,
from ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:227,
from ../../include/QtCore/qbasicatomic.h:1,
from ../../include/QtCore/../../src/corelib/thread/qatomic.h:46,
from ../../include/QtCore/qatomic.h:1,
from ../../include/QtCore/../../src/corelib/tools/qbytearray.h:45,
from ../../include/QtCore/qbytearray.h:1,
from ../../include/QtCore/../../src/corelib/tools/qstring.h:46,
from ../../include/QtCore/qstring.h:1,
from kernel/qobject.h:48,
from kernel/qobject.cpp:42:
../../include/QtCore/../../src/corelib/arch/qatomic_arm.h: In function 'void qt_removeObject(QObject*)':
../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:361:35: error: output number 1 not directly addressable
make[1]: *** [.obj/release-shared-emb-arm/qobject.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/home/saul/Downloads/qt-everywhere-opensource-src-4.7.2/src/corelib'
make: *** [sub-corelib-make_default-ordered] Error 2


It was the same error with codesourcery and the angstorm-distribution toolchain... can anybody help?

here is my qmake.conf

#
# qmake configuration for building with arm-linux-g++
#

include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)

# modifications to g++.conf
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 = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++

# modifications to linux.conf

QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_STRIP = arm-none-linux-gnueabi-strip


load(qt_config)

Adi
17th March 2011, 09:51
I had the same issue using Codesourcery toolchain (version 2010.09-50 (http://www.codesourcery.com/sgpp/lite/arm/portal/release1600)) and reverting to version 2010q1-202 (http://www.codesourcery.com/sgpp/lite/arm/portal/release1293) release made the problem disappear.

Apparently there is a bug in gcc 4.5 (shipped with last Codesourcery release: 2010.09-50) and to solve it you could revert to older version or try some of the hacks from the following discussions:

volatile int causes inline assembly build failure (https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/675347)
[PATCH] Volatile bitfields vs. inline asm memory constraints (http://gcc.gnu.org/ml/gcc-patches/2010-11/msg02245.html)