Qt3 on BeagleBoard

65 views
Skip to first unread message

Caner

unread,
Sep 8, 2009, 10:47:08 AM9/8/09
to Beagle Board
Hi,
Has somebody tried Qt3 on BeagleBoard? I've been looking around in
Qt related threads some of which I've participated, but I could'n find
any clue about Qt3. All of them are about Qt4. I also googled this
issue, but couldn't find anything helpful. I've found recipes about
Qt3 in stable/2009, I also built them. But I couldn't build my own
hello world for Qt3.


Regards

Caner

Ihar Hrachyshka

unread,
Sep 9, 2009, 3:32:48 AM9/9/09
to beagl...@googlegroups.com

There is no Qt3 toolchain support in OpenEmbedded so you should either
implement it or build Qt3 manually with OpenEmbedded toolchain and develop
your apps with it.

Caner

unread,
Sep 9, 2009, 5:56:15 AM9/9/09
to Beagle Board
Hi Ihar,
Thanks for the answer. Well, in my recipes directory, there's a `qt
´ directory containing .bb files called as qt-x11-
free_3.3.5 , ..._3.3.6 and _3.3.7. When I bitbake this package, I
obtain qt tools (qmake, uic, moc) located in ${OEbase}/angstrom-dev/
staging/i686-linux/usr/bin. I've also checked qmake version. It's
3.3.5. When I try to bitbake a simple qt3 hello world, I get a linking
error indicating that the linker cannot find the library qte.
Hopefully, there's package called qte in recipes directory. I bitbaked
it and I tried to recompile my hello world, and I got compilation
errors. Note that this qte's version is 2.3. Probably it is an
incompatibility issue. A final remark is that, at top of hello world's
bb file, I add inherit qmake.
I'm not sure about the terminology, nevertheless, if there's no qt
toolchain, what are those qt tools (qmake, moc and uic) standing for?
Thanks also for the advice, I'm going to try to build Qt3 manually.

Regards

Caner

Ihar Hrachyshka

unread,
Sep 9, 2009, 7:32:35 AM9/9/09
to beagl...@googlegroups.com
On Wed, Sep 09, 2009 at 02:56:15AM -0700, Caner wrote:
>
> Hi Ihar,
> Thanks for the answer. Well, in my recipes directory, there's a `qt
> ´ directory containing .bb files called as qt-x11-
> free_3.3.5 , ..._3.3.6 and _3.3.7. When I bitbake this package, I
> obtain qt tools (qmake, uic, moc) located in ${OEbase}/angstrom-dev/
> staging/i686-linux/usr/bin. I've also checked qmake version. It's
> 3.3.5. When I try to bitbake a simple qt3 hello world, I get a linking
> error indicating that the linker cannot find the library qte.
> Hopefully, there's package called qte in recipes directory. I bitbaked
> it and I tried to recompile my hello world, and I got compilation
> errors. Note that this qte's version is 2.3. Probably it is an
> incompatibility issue. A final remark is that, at top of hello world's
> bb file, I add inherit qmake.
> I'm not sure about the terminology, nevertheless, if there's no qt
> toolchain, what are those qt tools (qmake, moc and uic) standing for?
> Thanks also for the advice, I'm going to try to build Qt3 manually.

If you'd like to build your qt3 application with OpenEmbedded build
system then it should work. 'qte' library is qt-embedded, not qt-x11.
The recipe 'qte' is not intended to be used for your task.

Try 'inherit qmake qt3x11' in your recipe.

Caner

unread,
Sep 10, 2009, 11:26:30 AM9/10/09
to Beagle Board
Hi,
Here's the content of my .bb file:



inherit qmake qt3x11

DESCRIPTION = "test qt 3 program"
LICENSE = "GPLv2"

PR = "r0"

DEPENDS = ""

SRC_URI = " \
file://form1.ui \
file://form1.ui.h \
file://main.cpp \
file://test1.pro \
"

S = "${WORKDIR}"



do_install () {
install -d ${D}${bindir}/
install -m 0755 ${S} ${D}${bindir}/
}

FILES_${PN} = "${bindir}"




This is the error report I found in the
log.do_compile.<versionnumber>:


ccache arm-angstrom-linux-gnueabi-gcc -march=armv7-a -mtune=cortex-a8 -
mfpu=neon -mfloat-abi=softfp -L/home/bilko/workbench/OE/angstrom-dev/
staging/armv7a-angstrom-linux-gnueabi/usr/lib -Wl,-rpath-link,/home/
bilko/workbench/OE/angstrom-dev/staging/armv7a-angstrom-linux-gnueabi/
usr/lib -Wl,-O1 -Wl,--hash-style=gnu -Wl,-rpath-link,/home/bilko/
workbench/OE/angstrom-dev/staging/armv7a-angstrom-linux-gnueabi/qt3/
lib -o test1 .obj/main.o .obj/form1.o .obj/moc_form1.o -L/home/bilko/
workbench/OE/angstrom-dev/staging/armv7a-angstrom-linux-gnueabi/qt3/
lib -lqt-mt -lXext -lX11 -lm -lpthread
/home/bilko/workbench/OE/angstrom-dev/cross/armv7a/lib/gcc/arm-
angstrom-linux-gnueabi/4.3.1/../../../../arm-angstrom-linux-gnueabi/
bin/ld: warning: libstdc++.so.6, needed by /home/bilko/workbench/OE/
angstrom-dev/staging/armv7a-angstrom-linux-gnueabi/qt3/lib/libqt-
mt.so, not found (try using -rpath or -rpath-link)
.obj/main.o: In function `main':
main.cpp:(.text+0x8c): undefined reference to `__cxa_end_cleanup'
.obj/main.o:(.ARM.extab+0x0): undefined reference to
`__gxx_personality_v0'

[...]



Well, I made a search for libstdc++.so.6 in ${OETREE}, those are the
locations where libstdc++6.so and softlinks are found:

${OETREE}/angstrom-dev/cross/armv7a/arm-angstrom-linux-gnueabi/lib/
libstdc++.so.6
${OETREE}/angstrom-dev/cross/armv7a/arm-angstrom-linux-gnueabi/lib/
libstdc++.so.6.0.10
${OETREE}/angstrom-dev/rootfs/usr/lib/libstdc++.so.6
${OETREE}/angstrom-dev/rootfs/usr/lib/libstdc++.so.6.0.10

What do you think the problem is related to?

Thanks a lot.


Caner

Ihar Hrachyshka

unread,
Sep 11, 2009, 4:33:34 AM9/11/09
to beagl...@googlegroups.com
On Thu, Sep 10, 2009 at 08:26:30AM -0700, Caner wrote:
>
> Hi,
> Here's the content of my .bb file:
>
>
>
> inherit qmake qt3x11
>
> DESCRIPTION = "test qt 3 program"
> LICENSE = "GPLv2"
>
> PR = "r0"
>
> DEPENDS = ""
>
> SRC_URI = " \
> file://form1.ui \
> file://form1.ui.h \
> file://main.cpp \
> file://test1.pro \
> "
>
> S = "${WORKDIR}"
>
>
>
> do_install () {
> install -d ${D}${bindir}/
> install -m 0755 ${S} ${D}${bindir}/
> }
>
> FILES_${PN} = "${bindir}"
>
>
>
>
> This is the error report I found in the
> log.do_compile.<versionnumber>:
>
>
> ccache arm-angstrom-linux-gnueabi-gcc -march=armv7-a -mtune=cortex-a8 -
^^^

You build qt3 (c++) program with gcc (c) compiler.

Caner

unread,
Sep 15, 2009, 3:45:31 AM9/15/09
to Beagle Board
Hi,
Those are related environment variables in my openembedded
installation:

BB>> getvar CC
ccache arm-angstrom-linux-gnueabi-gcc -march=armv7-a -mtune=cortex-a8 -
mfpu=neon -mfloat-abi=softfp
BB>> getvar CXX
ccache arm-angstrom-linux-gnueabi-g++ -march=armv7-a -mtune=cortex-a8 -
mfpu=neon -mfloat-abi=softfp

When I checked the content of the related Makefile, I found those
lines:
CC = $(OE_QMAKE_CC)
CXX = $(OE_QMAKE_CXX)

.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

This is the unique line which uses CC in whole Makefile. And I don't
have any .c file and .c.o file in my project


And to find out how OE_QMAKE_CC and OE_QMAKE_CXX are set, I checked
qmake.bbclass and qmake_base.bbclass files:
In qmake_base.bbclass file:
export OE_QMAKE_CC="${CXX}"
export OE_QMAKE_CXX="${CC}"

I still can't see, where the problem is.

Regards

Caner


On Sep 11, 11:33 am, Ihar Hrachyshka <ihar.hrachys...@gmail.com>
wrote:
Reply all
Reply to author
Forward
0 new messages