PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : KDE/QT programmierung linux-suse verschiedene versionen



microdigi
29-01-2003, 17:42
:mad: nun stelle ich heute mit ensetzen fest,
dass es bei den (suse-)versionen offensichtlich nicht moeglich ist,
applikation rueckwaerts compatibel laufen zu lassen.
konkret:
application compiliert auf KDE/QT 3 aus dem suse-linux 8.1,
ist unter 7.0 und frueher nicht ablaufbar.
verlangt eine andere version von
/opt/Kde#1/lib/libkdeui.so.#2

wobei #1 Kde2 oder Kde3 ist (compiliert mit kde3)
und #2 die nr 1, 2, 3, (und 4 bei 8.1) ist.
und dieser dateien/libs gibts auf den 'alten' versionen (noch) nicht.

habe bei suse versucht, mich anzumelden,
habe aber den support schluessel noch nicht zurueck,
weil ich eine falsche email angegeben hatte (tippfehler :( )

hat jemand ne 'fixe' idee, OB und wenn ja,
WIE man die mit den neuen tools generierten programme
auf den 'aelteren linux/suse versionen' zum leben erweckt ?
habe schon die dynamischen lib abgeschaltet, hat aber nix gebracht.

ich denke mal, anda_skoa wirds wieder erwischen :D .
danke allemale fuer antwort(en).
digi aus dem schoenen pfaelzer wald.

mehlvogel
29-01-2003, 17:48
Bin da vielleicht net so der Profi und es ist eigentlich auch nur eine fixe idee - aber mach doch nen Symlink von der DAtei die du brauchst auf die alte.

microdigi
29-01-2003, 18:00
naja, wie du siehst, bin ich schon kein ganz so blutiger anfaenger mehr :)
und das habe ich natuerlich LAENGST probiert.
dabei habe ich die (vor-)versionen (...so.1, ...2, ...3)
aber schon garnicht mehr auf dem hobel.
auch habe ich natuerlich auch die kde ide so eingestellt,
dass er in die KDE2 greift - die hab ich noch von 8.0.
erfolg tendierend gegen minus null. :)
nicht ganz null; denn dann (bei dem symlink) kommt das biest mir weiteren forderungen. und findet einige klamotten nicht (mehr).
liegt ganz offensichtlich an den unterschiedlichen versionen des kde.
die ..so.1, ..so.2 usw sind natuerlich schon unterschiedlich in der laenge
und im datum, ueber den effektiven inhalt hab ich mich nicht geschlaut,
aber der ist ganz sicher auch unterschiedlich.

ich hoffe INBRUENSTIG, dass ich nicht fuer jede version eine spezielle
ausgabe meines programmes brauche.... das waer n chaos.. :mad:

danke dir trotzdem fuer deine antwort, sie war imho jedenfalls richtig.

gruss - digi

anda_skoa
29-01-2003, 20:47
Wenn die 8.1 scho den GCC3.2 verwendet und die 7.0 noch den GCC2.95, dann geht da kein Executable, dass C++ Code enthält, denn diese beiden Compiler sind nicht ABI kompatibel.

Sonst sollte es schon gehen, wenn du auf beiden die selbe KDE Major Version hast.

Ciao,
_

microdigi
30-01-2003, 13:16
es schaelt sich heraus woran es liegt,
trolltech hat schon eine anfrage.

beim erstellen eines widgets mit qt-designer
UND einfuegen eines festen textest
wird das macro i18n eingesetzt,
und das braucht 'kdcore' und 'kdeui'.

sofern es gelingt, diese festen texte NICHT mit in den designer einzufuegen -
und ich denke, das gelingt, weil hier der text sowieso sprach-abhaengig in the fly
geladen wird- dann sollte das ding NUR mit qt rennen koennen.

ich melde das ergebnis hier.
gruss - digi

anda_skoa
30-01-2003, 16:13
Original geschrieben von microdigi
beim erstellen eines widgets mit qt-designer
UND einfuegen eines festen textest
wird das macro i18n eingesetzt,
und das braucht 'kdcore' und 'kdeui'.


Hmm, normalerweise verwendet Qt ein eingenes Macro.
tr() glaub ich.

Ciao,
_

microdigi
30-01-2003, 19:07
anda_skoa, du kannst einen darauf lassen...
die ursache finde ich ganz sicher. :D
und dann poschte ich sie auch hier.
trolltech sagt, dass sie keine kde libs nehmen,
was ja auch richtig ist.
aber das gui nimmt sie im beschriebene falle.
wenn ich die loswerde, dann gehts mir gut.
biss denne - digi an der 'werkbank'. :)

brotzi
30-01-2003, 20:57
Also wenn du mit der Susi 8.1 kompilierst benutzt du den gcc3.2. Die älteren Systeme basieren noch auf dem gcc2.95. Das bedeutet, das selbst wenn du alle Symbole aufgelöst kriegst es noch immer nicht funktionieren wird.
Die einzige Alternative ist statisch zu linken, also eine *dicke,fette* App zu machen, die garkeine Libs mehr benötigt. Diese sollte dann auch auf älteren und womöglich in 5 Jahren auf ganz neuen Systemen noch laufen.

microdigi
31-01-2003, 09:37
naja, hab ich ja auch schon gemacht.
ist ja die erste wahl sofort gleich.
und - was mich dabei stutzig macht -
es geht dennoch nicht.
offensichtlich wurde nicht statisch gelinkt.
daran wird itzet 'probiert'.

danke fuer die saubere antwort.
gruss - digi

brotzi
31-01-2003, 13:50
Es gibt aber auch nocheine Möglichkeit:

Voraussetzung ist jedoch, daß du die Abhängigkeiten zu den KDElibs weg bekommst. Du kannst einfach alle Libs, die du für deine App brauchst in einer distri mitschicken. Alles zusammen kopierst du in ein verzeichnis - sagen wir /usr/local/myapp.
dann schreibst du ein kleines shellscript, welches deine app startet:

export LD_LIBRARY_PATH=/usr/local/myapp
/usr/local/myapp/myapp

Dieses kopierst du nach /usr/local/bin.