64Bit und lgcc ?

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
dumpfbacke
Beiträge: 17
Registriert: 11.07.2004 17:34:19

64Bit und lgcc ?

Beitrag von dumpfbacke » 03.12.2005 21:59:50

Hallo,

ich habe ein Problem, ich möchte ein 32Bit Programm auf meinem 64Bit compilieren. Doch bei make kommt dann immer

Code: Alles auswählen

/usr/bin/ld: skipping incompatible /usr/lib/gcc-lib/x86_64-linux/3.3.5/./libgcc.a when searching for -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc-lib/x86_64-linux/3.3.5/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
Kann mir da einer einen Tipp geben :cry:


MFG

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 04.12.2005 00:41:02

wahrscheinlich mußt du eine neuere Version des gcc Compilers verwenden, kannst du es einmal mit dem 3.4er versuchen ?
Was liefert "locate libgcc.a" ?

Gruß
gms

dumpfbacke
Beiträge: 17
Registriert: 11.07.2004 17:34:19

Beitrag von dumpfbacke » 05.12.2005 15:21:07

Hallo,

locate libgcc.a Liefert:

/usr/lib/gcc-lib/x86_64-linux/3.3.5/libgcc.a

Ich habe gcc 3.4 installiert aber es kommt immer noch der selbe fehler :cry:

MFG

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 05.12.2005 16:12:19

laut http://packages.debian.org/cgi-bin/sear ... arch=amd64

solltest du mit dem 3.4er gcc sowohl die 32 bit als auch die 64 bit libraries bekommen:
usr/lib/gcc/x86_64-linux/3.4.4/32/libgcc.a
usr/lib/gcc/x86_64-linux/3.4.4/32/libgcc_s.so
usr/lib/gcc/x86_64-linux/3.4.4/libgcc.a
usr/lib/gcc/x86_64-linux/3.4.4/libgcc_s.so

amd64 habe ich leider nicht, aber auf powerpc64 und sparc64 funktioniert das.

Bist du sicher, daß bei deinem Versuch mit dem gcc 3.4 auch dieser verwendet wurde ?

Gruß
gms

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 05.12.2005 16:53:56

hallo,

zu dem problem weiss ich keine konkrete lösung , aber du kannst ganz
sicher ia32-prograqmme in einem ia32-chroot kompilieren... solltest du mal
probieren. Hat ansonsten noch den vorteil das 32bit-programme problemlos
laufen.

siehe -> http://alioth.debian.org/docman/view.ph ... howto.html
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

dumpfbacke
Beiträge: 17
Registriert: 11.07.2004 17:34:19

Beitrag von dumpfbacke » 05.12.2005 20:27:19

Hallo,

also er hat den gcc 3.4 ohne Probleme installiert. Wie kann ich feststellen das er auch diesen beim compilieren benutzt ?

Das mit der chroot umgebung habe ich auch schon gelesen aber das möchte ich eigentlich vermeiden.

MFG

crazyed

Beitrag von crazyed » 05.12.2005 20:37:14

Moin,
der Symlink /usr/bin/gcc zeigt auf den verwendeten Compiler

dumpfbacke
Beiträge: 17
Registriert: 11.07.2004 17:34:19

Beitrag von dumpfbacke » 05.12.2005 22:31:38

Also ich hab nun festgestellt das er immer noch den 3.3'er benutzt. Ich habe diesen nun mit
apt-get remove --purge gcc3.3 deinstalliert.

Und mit

apt-get install gcc-3.4-base gcc-3.4

den 3.4 installiert. Aber nun sagt er mir das er kein gcc findet. Wenn ich

apt-get install gcc

mache dann will er den gcc3.3 installieren.

Hat jemand nen weiteren Tipp für mich :cry:


MFG

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 05.12.2005 23:10:44

gut geschriebene Makefiles, bzw configure-Scripts verwenden die Environmentvariable CC.
Daher kannst du einmal folgendes versuchen

Code: Alles auswählen

export CC=/usr/bin/gcc-3.4
./configure
In den Makefile's findest du dann zumeist einen Eintrag wie CC=/usr/bin/gcc-3.4

Ist das Paket schlecht geschrieben wird immer gcc bzw cc verwendet. In diesem Fall mußt du durch setzen des Symlinks zwischen den Compilerversionen wählen.

Code: Alles auswählen

rm /usr/bin/gcc
rm /usr/bin/cc
ln -s /usr/bin/gcc-3.4 /usr/bin/gcc
ln -s /usr/bin/gcc-3.4 /usr/bin/cc
Den "Standardcompiler" des Systems (in deinem Fall gcc 3.3 kannst du getrost installieren.

Beim Konfigurieren des Systems solltest du sicherheitshalber einen Prefix wie z.B. "/usr/local32" wählen, damit bei der Installation des Pakets eine klare Trennung zwischen 32bit und 64bit Paketen bestehen bleibt und sich nicht etwa im /usr/local/lib 32bit und 64bit Libraries tummeln.

Code: Alles auswählen

./configure --prefix=/usr/local32
make
make install
Gruß
gms

dumpfbacke
Beiträge: 17
Registriert: 11.07.2004 17:34:19

Beitrag von dumpfbacke » 06.12.2005 08:35:26

DANKE

Es hat super funktioniert :o

MFG

Antworten