Seite 1 von 1

[Linux] Auf x86_64 für i386 kompilieren

Verfasst: Mo Feb 21, 2011 10:43 pm
von nouseforname
Hatte gerade das Problem dass ich auf Ubuntu 64b arbeite aber für i386 kompilieren will.

Folgendes muss dazu nachinstalliert werden

Code: Alles auswählen

sudo apt-get install ia32-libs

Code: Alles auswählen

sudo apt-get install libc6-dev-i386
und g++ bekommt noch -m32 als Parameter mit.

Nun habe ich aber noch das Problem dass zb ncurses trotzdessen dass es installiert ist nicht gefunden wird.
Vielleicht weisst aber jemand was ich dazu linken muss.

zB sowas wie -l /usr/lib32/ncurses.so.5 oder so.

Hab schon bissel rumprobiert aber es noch nicht geschafft.

Re: [Linux] Auf x86_64 für i386 kompilieren

Verfasst: Di Feb 22, 2011 12:28 am
von Xin
Wie rufst Du denn denn den Compiler auf?

Re: [Linux] Auf x86_64 für i386 kompilieren

Verfasst: Di Feb 22, 2011 6:32 am
von nouseforname
so...

Code: Alles auswählen

g++ -m32 -lm -lncurses -Wall -ansi -pedantic -g -o ....
es fehlt definitiv der pfad zu den 32er libs, ohne -m32 geht alles.

Re: [Linux] Auf x86_64 für i386 kompilieren

Verfasst: Di Feb 22, 2011 10:17 am
von Xin
nouseforname hat geschrieben:es fehlt definitiv der pfad zu den 32er libs, ohne -m32 geht alles.
Die ncurses liegt auch als 32 Bit Version vor?

Ich habe vor ein paar Jahren auf Linux für Windows kompiliert, da waren entsprechend auch Windows andere Libs erforderlich.
Ich gucke mal, ob ich das Makefile noch finde.

Was ich mit Sicherheit noch weiß, ist dass es einen mingw-xyz-gcc gab, der sämtliche Konfiguration übernimmt.

Wenn ich das richtig sehe, fehlt Dir aber zuerst wirklich die Angabe, dass er sich nicht auf /usr/lib verlassen darf.
Das müsste sich erstmal so beheben lassen.

Code: Alles auswählen

g++ -m32 -L/usr/lib32 -lm -lncurses -Wall -ansi -pedantic -g -o ....
Dann schauen wir, was als nächstes kommt. ^^

Das Thema ist interessant, das sollten wir in die FAQ geben.

Re: [Linux] Auf x86_64 für i386 kompilieren

Verfasst: Di Feb 22, 2011 1:39 pm
von Dirty Oerti
Die ncurses liegt auch als 32 Bit Version vor?
Das ist meistens das Hauptproblem.
Ich würde empfehlen die entsprechenden Bibliotheken als 32bit Version (das Paket z.B., halt nicht über die Paketverwaltung, da geht das glaub ich ja gar nicht) runterzuladen und z.B. nach /opt/lib32/ oder sonst wo hin zu packen.

Das Thema ist interessant, das sollten wir in die FAQ geben.
Auf jeden Fall. Cross-Compilierung nach Windows hab ich auch was hier, was funktioniert :)

Re: [Linux] Auf x86_64 für i386 kompilieren

Verfasst: Di Feb 22, 2011 6:37 pm
von nouseforname
Würde gerne meinen ersten Beitrag noch editieren um den Post zu vervollständigen.

nun gut, schreibe ich eben alles hier. Zu meinem Problem... mir fehlte nur noch lib32ncurses5-dev und der Symlink, alles andere war vorhanden.
Den Pfad als Flag mitzugeben hat nicht funktioniert.

So gehts....

Folgendes ist zu installieren:

Code: Alles auswählen

sudo apt-get install ia32-libs libc6-i386 libc6-dev-i386 lib32gcc1 lib32stdc++6 lib32ncurses5 lib32ncurses5-dev
Damit die -lstdc++ auch gefunden wird nun noch den Symlink erstellen:

Code: Alles auswählen

sudo ln -s /usr/lib32/libstdc++.so.6 /usr/lib32/libstdc++.so
und dann so kombilieren:

Code: Alles auswählen

g++ -m32 -lncurses -o x.y source.cpp
Bei mir ist so zumindest alles OK, auf den ersten Blick.

Re: [Linux] Auf x86_64 für i386 kompilieren

Verfasst: Di Feb 22, 2011 7:17 pm
von Xin
nouseforname hat geschrieben:Würde gerne meinen ersten Beitrag noch editieren um den Post zu vervollständigen.
Was fehlt denn?
nouseforname hat geschrieben: nun gut, schreibe ich eben alles hier. Zu meinem Problem... mir fehlte nur noch lib32ncurses5-dev und der Symlink, alles andere war vorhanden.
Den Pfad als Flag mitzugeben hat nicht funktioniert.
Schade ^^
Aber geschadet hat es nicht? Ich gehe dann mal davon aus, dass -m32 den Library-Pfad ebenfalls setzt?!
nouseforname hat geschrieben:So gehts....
...
Bei mir ist so zumindest alles OK, auf den ersten Blick.
Okay, dann werde ich den Thread mal auf die Todo-Liste setzen oder magst Du ihn das hier als FAQ-Seite setzen?

Re: [Linux] Auf x86_64 für i386 kompilieren

Verfasst: Di Feb 22, 2011 8:14 pm
von nouseforname
Xin hat geschrieben: Was fehlt denn?
Ich hätte einfach alles gleich in den ertsne Post geschrieben, so muss man nicht lange suchen.
Schade ^^
Aber geschadet hat es nicht? Ich gehe dann mal davon aus, dass -m32 den Library-Pfad ebenfalls setzt?!
Geschadet hat es nicht, aber gebracht auch nichts, hatte ich so oder ähnlich ja auch selbst schon versucht. Fehlermeldung war die gleiche.
Zumindet bringt -m32 ganz andere Meldungen wenn die lib32 garnicht vorhanden ist, kann also gut sein dass dies dann automatisch gesetzt wird.
Wie gesagt, bei mir hat wegen -lncurses noch die libncurses5-dev gefehlt, und wegen -ldstd++ der Symlink.
Okay, dann werde ich den Thread mal auf die Todo-Liste setzen oder magst Du ihn das hier als FAQ-Seite setzen?
Ist ja nicht viel, kann es gerne mal versuchen.