Qt3 on BeagleBoard

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

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.

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

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.

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

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.

Hi,
   Those are related environment variables in my openembedded
installation:

getvar CC

ccache arm-angstrom-linux-gnueabi-gcc -march=armv7-a -mtune=cortex-a8 -
mfpu=neon -mfloat-abi=softfp

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