wine mit ctlib unter amd64 lenny

Jan 'RedBully' Seiffert redbully at cc.hs-owl.de
Tue Oct 6 07:35:01 CEST 2009


Pierre Bernhardt wrote:
> Hallo,
> 
[snip - ctapi wrapper]
> Das wars dann aber auch schon. Er mag die Library wohl nicht, weil
> diese als 64bit vorliegt, aber wine nur mit 32bit rennt und daher
> auch auf nur eine 32bit lib zugreifen mag.
> 
> Naja also ich los und das Makefile so geändert das mit -m32 übersetzt
> wird: Geht.
> 
> Nun noch die lib erstellen: Essig. gcc such nun nach einer kompatiblen
> libpcsclite, die wiederum nur als 64 bit vorliegt und gefunden wird.
> Ich also die i386-Pakete kurz runtergeladen und im Pfad ausgepackt, in
> der Hoffnung, ich bekomme die dann irgendwie mit dem gcc verwurschtelt,
> was aber nicht geklappt hat.
> 
> Nun stehe ich hier und frage mich, ob ein anderer Weg nicht sinnvoller
> wäre.
> 

Nein, wenn du nicht "grad mal" pcs fuer Wine implementierst (es koennte in dem
falle in einfacher Wrapper sein der alles durchreicht a la OpenAL, OpenGL,
CUDA), ist das wohl der sinnvollste Weg, nur wie du erkannt hast, brauchst du
trotzdem alles in 32 Bit.
Bis Wine64 fertig ist, wirds noch dauern, ausserdem hilft dir das nix wenn du
nur 32Bit Winsoftware hast. Die sind da in Redmond halt etwas rueckstaendig...

[snip]
> ./usr
> ./usr/lib
> ./usr/lib/pkgconfig
> ./usr/lib/pkgconfig/libpcsclite.pc
> ./usr/lib/libpcsclite.so.1
> ./usr/lib/libpcsclite.so
> ./usr/lib/libpcsclite.a
> ./usr/lib/libpcsclite.so.1.0.0
> ./usr/lib/libpcsclite.la

Ich weiss jetzt nicht wie Debain das under x86-64 organisiert, aber sollten
diese Libs nicht unter lib32 liegen oder sowas? Sind in /usr/lib die 64bit libs
oder 32bit libs? Oder ist das ein Symlink auf lib32 bzw. lib64?

[snip]
> 
> 
[snip]
> Und hier gehts dann nicht weiter:
> pierre at AMD64x2:~/Downloads/pcsc-ctapi-wrapper-0.3$ gcc -m32 -O2 -Wall -I usr/include/PCSC/ -I . -shared -o libpcsc-ctapi-wrapper.so.0.3 -Wl,-soname="libpcsc-ctapi-wrapper.so" pcsc-ctapi-wrapper.o -lpcsclite -L usr/lib/
> /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.3.2/libgcc.a when searching for -lgcc
> /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.3.2/libgcc.a when searching for -lgcc
> /usr/bin/ld: cannot find -lgcc
> collect2: ld returned 1 exit status
> 

Er findet die 32-bit version von libgcc ueberhaupt nicht (muss die extra
installiert werden? compatlibs32 packet oder sowas?), nur die "normal"64Bit Version.
Entweder musst du noch weitere 32Bit Pfade zum Linker durch reichen (wobei ich
gehofft hatte, das -m32 dafuer sorgt). Oder noch irgendwas insten. Aber komisch
ist das schon, verwirren in irgendwelche 64-Bit libs?
Nimmt er denn die 32-bit Version von libpcslite?
Du kannst mit -v und sowas dir die Zeilen anzeigen lassen, mit denen der Linker
aufgerufen wird, mit -Wl,-v vieleicht auch den Linker etwas gespraechiger machen
(siehe Handbuecher).
Schau mal, ob du einen Ordner a la /usr/lib/i686-linux-gnu irgendwo hast, welche
libgcc.so auf deinem Rechner so sind. Gibt es irgendein fertiges 32-bit Programm
im Packetbaum (Acrobat Reader oder sowas, wobei, was die wieder fuer dirty
tricks machen...)? Schau mal mit ldd gegen was das gelinkt ist.

[snip]
> Danke schon mal für die Hilfe...
> Pierre
> 

Gruss
	Jan

-- 
Fachbegriffe der Informatik:
44: Verdeckter Fehler
    Siemens hat mitentwickelt. (Jörg Pechau)



More information about the Linux mailing list