Hallo! Nach diesem mit eurer Hilfe gelöstem Problem: Beitrag "Terminal Befehl Linux" (Tilde war Schuld) stehe ich vor einem neuen Problem: Ich habe das Programm (uno, ist eine bin-Datei) per Mail versandt und auf einem anderen Computer ausführen wollen. Es funktioniert jedoch nicht. (Ausführbar gesetzt ist es, doch es kommt immer die Meldung: bash: ./uno bin kann nicht ausgeführt werden (oder so ähnlich) Ich habe es ganz normal im Terminal probiert (also kein shell). Was könnte das Problem sein? Auf diesem Computer läuft Xubuntu 12.04 32bit. Auf dem Computer von dem ich es versandt habe (dort funktioniert es übrigens perfekt) läuft Linux mint 15 XFCE 64bit (Ich habe das Programm übrigens selbst auf diesem Computer geschrieben. Kann es sein, dass es jetzt eine 64bit-Version ist und am 32bit-PC deshalb nicht läuft? Wenn ja, kann man das irgendwie umcompilieren? Auch am 32 bit PC, wo der Code nicht da ist, sondern nur die bin-Datei?) Wäre für jeden Tipp dankbar!!! Gruß
> Auf dem Computer von dem ich es versandt habe (dort funktioniert es > übrigens perfekt) läuft Linux mint 15 XFCE 64bit > (Ich habe das Programm übrigens selbst auf diesem Computer geschrieben. > Kann es sein, dass es jetzt eine 64bit-Version ist und am 32bit-PC > deshalb nicht läuft? genau > Wenn ja, kann man das irgendwie umcompilieren? Auch > am 32 bit PC, wo der Code nicht da ist, sondern nur die bin-Datei?) nein, ohne code nicht. mit code, den passenden compiler vorausgesetzt mit
1 | gcc -m32 xyz.c |
Vermutlich fehlt auch die Berechtigung zum Ausführen. Beim Versand per Email dürfte das x-Bit verloren gegangen sein.
1 | chmod u+x uno |
Hallo! Nun wollte ich mein Programm auf 32bit umcompilieren. Habe gcc -m32 main.c eingegeben. Es kam folgendes: In file included from /usr/include/features.h:341:0, from /usr/include/stdio.h:27, from main.c:3: /usr/include/stdc-predef.h:30:26: fatal error: bits/predefs.h: No such file or directory compilation terminated. Was könnte der Fehler sein?? Wenn ich nur gcc main.c schreibe, wird das Programm normal und ohne Fehlermeldung kompiliert.... Danke im Voraus!
Wahrscheinlich fehlen dir die 32bit packages. Such mal nach libc x86 oder so in den Repos
also mein g**gle geht noch. mit der frage nach " fatal error: bits/predefs.h: No such file or directory" liefert g**gle gleich im ersten ersten beitrag eine lösung. http://ubuntuforums.org/showthread.php?t=1877944
Danke! Nun hat´s funktioniert. Ist es normal, dass die 32bit Version jetzt auch auf meinem PC läuft, obwohl es 64bit ist? Ist das wegen den nachinstallierten 32bit packages?
Sven P. schrieb: > Vermutlich fehlt auch die Berechtigung zum Ausführen. Beim Versand per > Email dürfte das x-Bit verloren gegangen sein. > chmod u+x uno Wenn man keine Ahnung hat, einfach mal die Finger still halten... Der OP schrieb: >Ausführbar gesetzt ist es
noname schrieb: > Ist es normal, dass die 32bit Version jetzt auch auf meinem PC läuft, > obwohl es 64bit ist? Ja. 32bit-Software auf 64bit-Maschine tut normal (Abwärtskompatibilität), anders rum nicht.
:
Bearbeitet durch User
Ok, dann sollte es hoffentlich auch am 32-bit PC laufen. Vielen Dank nochmals!
Wenn du ganz sicher gehen willst, versuch noch ein statisches Linken (-static beim Linker). Die Binaries werden zwar riesig, sind aber deutlich portabler.
noname schrieb: > bash: ./uno bin kann nicht ausgeführt werden (oder so ähnlich) Dir fehlen wahrscheinlich Libraries Auf dem anderen System liefert der Befehl ldd uno die alle benötigten Libs, bzw. auch die fehlenden.
Dominik S. schrieb: > noname schrieb: >> Ist es normal, dass die 32bit Version jetzt auch auf meinem PC läuft, >> obwohl es 64bit ist? > > Ja. > 32bit-Software auf 64bit-Maschine tut normal (Abwärtskompatibilität), > anders rum nicht. Es sollte/könnte ... Es müssen aber auch die entsprechenden Libs vorhanden sein. Nennt sich multilib Siehe http://de.wikipedia.org/wiki/Multilib
Vielen Dank euch allen! Nach dem 32-bit kompilieren ging´s auf dem 32-bit-PC auch!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.