Lazarus und QT Embedded

Antworten
Kernel
Beiträge: 35
Registriert: Di 13. Okt 2009, 14:10

Lazarus und QT Embedded

Beitrag von Kernel »

Hallo,

ich versuche verzweifelt mittels Lazarus eine Applikation zu erzeugen, welche QT-Embedded benutzt.
Zweck ist die Ausführbarkeit ohne XServer.
Nach unzähligen Versuchen schreie ich hier mal um Hilfe.
Ich benutze Ubuntu 9.04, Lazarus 0.9.28, FPC 2.2.4.3 (stable Version von Sourceforge),
QT-Source 4.5.3 von http://get.qt.nokia.com/qt/source/qt-em ... 5.3.tar.gz und das
FPC-Bindung V1.72 von http://users.telenet.be/Jan.Van.hijfte/ ... 5.2.tar.gz

Soweit, das Compilieren des QT-Sources als embedded scheint funktioniert zu haben.
Im Moment hänge ich beim Compilieren des Bindungs mit:

./compile_lib_qtopia.sh i386
Note: ./compile_lib_qtopia.sh i386 will compile with g++, ./compile_lib_qtopia.sh will compile with arm-linux-g++
using g++ and strip
please wait for compile to finish ...
g++: BINUX: No such file or directory
In file included from qtpas.cpp:187:
lib/qsslcipher.cppb: In function »QSslCipher__* QSslCipher_create()«:
lib/qsslcipher.cppb:17: Fehler: expected primary-expression before »)« token
lib/qsslcipher.cppb:17: Fehler: expected »;« before »new«
lib/qsslcipher.cppb:17: Fehler: expected type-specifier before »QSslCipher«
lib/qsslcipher.cppb:17: Fehler: expected `;' before »QSslCipher«
lib/qsslcipher.cppb: In function »void QSslCipher_destroy(QSslCipher__*)«:
lib/qsslcipher.cppb:22: Fehler: »QSslCipher« wurde in diesem Gültigkeitsbereich nicht definiert
lib/qsslcipher.cppb:22: Fehler: expected primary-expression before »)« token
lib/qsslcipher.cppb:22: Fehler: expected `;' before »handle«
lib/qsslcipher.cppb: In function »QSslCipher__* QSslCipher_create2(void*, QSsl::SslProtocol)«:
lib/qsslcipher.cppb:29: Fehler: expected primary-expression before »)« token
...

leider kann ich diesbezüglich im Netz nichts finden.
Ich habe leider auch vergeblich versucht, dieses in die qt-Maillist zu posten.

Hat jemand hiermit Erfahrung, Ideen, etc?
Benutzt jemand erfolgreich Lazarus mit QT-Embedded?

Gruß
Kernel

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Lazarus und QT Embedded

Beitrag von Targion »

Wie sihet denn das Buildscript aus?

Kernel
Beiträge: 35
Registriert: Di 13. Okt 2009, 14:10

Re: Lazarus und QT Embedded

Beitrag von Kernel »

Hier mal kurz das script:


#!/bin/env bash
# Get latest binding source from http://users.telenet.be/Jan.Van.hijfte/ ... pcqt4.html.
# For more info, you can visit the links on above page to FreePascal and Lazarus wiki

# if the system wide Qt libraries are not the one you want:
# then download the wanted version of Qt sources.
# Unpack Qt source -> the created directory (Qt4 dir) will be used below
# do configure and gmake in that Qt4 dir
# The binding was generated from a Qt configured with:
# ./configure -v -confirm-license -prefix `pwd` -opengl -xrender -xcursor -xrandr -qvfb -openssl -fontconfig -sm

LDNAME=libqt4intf.so
SONAME=libqt4intf.so.5
ONAME=libqt4intf.so.5.1.72
QTDIR=../qt-all-opensource-src-4.5.2
INCLUDE_PATH="-I. -I$QTDIR/include -I$QTDIR/include/Qt -I$QTDIR/include/QtGui -I$QTDIR/include/QtCore -Iqlcl "
LIB_PATH=$QTDIR/lib

echo "Note: $0 i386 will compile with g++, $0 will compile with arm-linux-g++"
if [ "$1" = "i386" ]
then
GCC='g++'
STRIP='strip'
else
GCC='arm-linux-g++'
STRIP='arm-linux-strip'
fi
echo using $GCC and $STRIP

export LD_LIBRARY_PATH=$LIB_PATH
if [ -e "$LIB_PATH/libQtCore.so.4.5" ]
then
echo please wait for compile to finish ...
$GCC -D QTOPIA -D Q_WS_QWS BINUX $INCLUDE_PATH qtpas.cpp -o $ONAME -shared -fPIC -lQtCore -lQtGui -lQtNetwork -lQtWebKit -Xlinker -soname=$SONAME -Xlinker --library-path -Xlinker $LIB_PATH
echo Showing used Qt libraries when LD_LIBRARY_PATH=$LD_LIBRARY_PATH
ldd $ONAME | grep libQt
echo stripping library
$STRIP --strip-all $ONAME
ln -sf $ONAME $SONAME
ln -sf $SONAME $LDNAME
echo Done
else
echo "Please Modify location of Qt4 in this script"
fi

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Lazarus und QT Embedded

Beitrag von creed steiger »

von der Qt Mailingliste
I see that there is a typo in my compile script. Sorry :-)
Remove the word BINUX from the line $GCC.

$GCC -D QTOPIA -D Q_WS_QWS $INCLUDE_PATH .... (should not be *BINUX* between *Q_WS_QWS* and *$INCLUDE_PATH*)

Kernel
Beiträge: 35
Registriert: Di 13. Okt 2009, 14:10

Re: Lazarus und QT Embedded

Beitrag von Kernel »

Danke für die schnelle Antwort.
Das Entfernen von "BINUX" löst zwar das Problem mit der Meldung "g++: BINUX: No such file or directory",
aber leider den Rest nicht!

Evtl. noch eine Idee oder Link ?


Gruß
Kernel

Antworten