Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 25 von 62

Thema: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

  1. #1
    Brillenschlange Avatar von Kenobi van Gin
    Registriert seit
    Jul 2013
    Ort
    .\
    Beiträge
    2.630
    ngb:news Artikel
    1

    [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    Hallo zusammen.

    Ich wende mich heute mit einem recht kuriosen Problem unter Linux an euch. Ich nutze Linux Mint 19.1 Tessa MATE, soweit ich das beurteilen kann

    Ich habe unter Code::Blocks in C++ einen Bot für das Spiel 4 Gewinnt geschrieben. Als Compiler nutze ich GNU GCC. Das Ausführen der Binary aus der IDE heraus (über Strg+F10) funktioniert problemlos. Ebenso kann ein Bekannter von mir unter Arch Linux die Binary bei sich ausführen. Wenn ich allerdings im Speicherordner die Datei markiere und Enter drücke (oder doppelklicke), passiert einfach genau nichts. Versuche ich die Datei im Terminal zu öffnen, passiert folgendes:

    Spoiler: 


    Klicke auf die Grafik für eine größere Ansicht 

Name:	shell.png 
Hits:	51 
Größe:	35,6 KB 
ID:	54211


    Die Berechtigungen der Datei sehen wie folgt aus:

    Spoiler: 

    Klicke auf die Grafik für eine größere Ansicht 

Name:	Rechte.png 
Hits:	27 
Größe:	25,6 KB 
ID:	54213


    Die Datei ist also (wohl bereits von der IDE) als ausführbar markiert. Ein erneutes Ausführen von chmod +x bringt allerdings auch keinen Unterschied.

    Hat vielleicht jemand eine Ahnung, woran das liegen könnte? Es wäre doch schade, wenn ich weiterhin meine eigenen Programme nur aus der IDE heraus ausführen könnte...
    Geändert von Kenobi van Gin (31.05.19 um 21:00 Uhr)

  2. #2
    Defender of Freedom

    Administrator

    Avatar von Metal_Warrior
    Registriert seit
    Aug 2013
    Ort
    /dev/mapper/home
    Beiträge
    3.530
    ngb:news Artikel
    7

    Re: [Linux Mint] Selbst compilierte binary wird nicht ausgeführt

    @Kenobi van Gin: Probier mal

    ./4wins\ Bot

    Leerzeichen in Dateinamen müssen im Terminal auskommentiert werden, sonst wird der zweite Namensteil als Parameter für die Datei mit dem Namen 4wins interpretiert, die es ja nicht gibt. Ob die Anführungszeichen das richtig machen, bin ich mir grad nicht sicher, kann es aber grad auch nicht testen.
    GCM/IT/S/O d-(--) s+:- a? C++(+++) UL+++(++++)$ P L+++>++++ W++ w@$ M--$ PS+(++) PE(-) Y+(++) PGP++(+++) t+ 5(+) R* !tv b+(++++) DI(++) G++ e+>++++ h(--) y?
    Das Ende ist nahe: Dem Harleyschen Kometen folgt der Gammablitz beim Scheißen.

  3. #3
    Brillenschlange

    (Threadstarter)

    Avatar von Kenobi van Gin
    Registriert seit
    Jul 2013
    Ort
    .\
    Beiträge
    2.630
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte binary wird nicht ausgeführt

    Kann das gerne nochmal testen. Hatte allerdings nach einem Hinweis, der in eine ähnliche Richtung ging, auch schonmal einfach die Leerstelle aus dem Namen rausgenommen. Das hatte jedenfalls nichts gebracht.

    [EDIT:]
    Nope, weder das Auskommentieren bringt etwas, noch das Ersetzen der Leerstelle durch einen Unterstrich.

  4. #4

    Re: [Linux Mint] Selbst compilierte binary wird nicht ausgeführt

    @Kenobi van Gin: Normalerweise muss man Leerzeichen escapen wenn man nicht mit Anführungszeichen arbeitet.

    Also versuch es mal mit: ./4wins\ Bot

    Der Schrägstrich plus Leerzeichen sagen das im Namen ein Leerzeichen nach dem \ gibt, welches es zu escapen gilt.

    Ach ja, und weil du etwas ausführen willst:
    chmod +x 4wins\ Bot

    Das sagt das die Datei, zusätzlich, ausführbar sein soll. Dann sollte auch das Autocomplete greifen wenn du ./ vorwegsetzt.
    Geändert von theSplit (29.05.19 um 20:00 Uhr) Grund: Klein/Großschreibung im Befehl angepasst
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ dwrox.net

  5. #5
    Vereinsheimer Avatar von Laui
    Registriert seit
    Jul 2013
    Beiträge
    4.568
    ngb:news Artikel
    2

    Re: [Linux Mint] Selbst compilierte binary wird nicht ausgeführt

    du könntest auch
    4wins Bot
    in
    4winsBot
    umbenennen.
    aka Steev

  6. #6
    Defender of Freedom

    Administrator

    Avatar von Metal_Warrior
    Registriert seit
    Aug 2013
    Ort
    /dev/mapper/home
    Beiträge
    3.530
    ngb:news Artikel
    7

    Re: [Linux Mint] Selbst compilierte binary wird nicht ausgeführt

    @Kenobi van Gin: Dann würde es mich interessieren, was dein Kumpel unter Arch so macht, dass es läuft.

    Compilest du die Datei auch auf dem Rechner, auf dem du sie am Ende ausführen willst? Wenn nicht, fehlen dir eventuell Libraries... Aber jetzt fang ich echt an zu spekulieren...
    GCM/IT/S/O d-(--) s+:- a? C++(+++) UL+++(++++)$ P L+++>++++ W++ w@$ M--$ PS+(++) PE(-) Y+(++) PGP++(+++) t+ 5(+) R* !tv b+(++++) DI(++) G++ e+>++++ h(--) y?
    Das Ende ist nahe: Dem Harleyschen Kometen folgt der Gammablitz beim Scheißen.

  7. #7
    Mitglied
    Registriert seit
    Jul 2013
    Beiträge
    331
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte binary wird nicht ausgeführt

    Probier mal ldd ./4wins\ Bot - das zeigt dir an, welche Dateien zum Ausführen deiner Binary zusätzlich benötigt werden (dynamische Libraries und Linker). Vielleicht fehlt da was?

  8. #8
    Brillenschlange

    (Threadstarter)

    Avatar von Kenobi van Gin
    Registriert seit
    Jul 2013
    Ort
    .\
    Beiträge
    2.630
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte binary wird nicht ausgeführt

    @theSplit:
    @Laui: Wie schon weiter oben angemerkt, habe ich beides schon ausprobiert. Ich habe das Leerzeichen escapet, ich habe den Pfad in Anführungsstriche gesetzt und ich habe das Leerzeichen durch einen Unterstrich ersetzt. Leider hat nichts davon ein anderes Ergebnis gebracht.

    @Metal_Warrior: Ich habe die Datei auch auf dem selben Rechner compiliert. Mein Bekannter hat, soweit ich weiß, nur chmod +x ausgeführt, aber auch das schafft ja bei mir keine Abhilfe.

    @Rakorium-M: Okay, das könnte ich nochmal checken. Dürfte ja eigentlich nicht, weil es wie gesagt auf der selben Maschine compiliert wurde, aber vllt komme ich morgen mal dazu, das zu testen.

  9. #9
    Brillenschlange

    (Threadstarter)

    Avatar von Kenobi van Gin
    Registriert seit
    Jul 2013
    Ort
    .\
    Beiträge
    2.630
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte binary wird nicht ausgeführt

    Also ldd gibt bei mir folgendes aus:

    Spoiler: 

    Klicke auf die Grafik für eine größere Ansicht 

Name:	ldd.png 
Hits:	25 
Größe:	444,3 KB 
ID:	54238


    Any thoughts?

    Ich hänge außerdem einfach mal die Binary an. Falls sich wer traut, könnt ihr damit gern experimentieren
    Angehängte Dateien Angehängte Dateien

  10. #10
    Mitglied
    Registriert seit
    Jul 2013
    Beiträge
    331
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte binary wird nicht ausgeführt

    Ich kann das Problem nachvollziehen (Linux Mint 19.1 Cinnamon). Anscheinend setzt dein Compiler einen falschen Loader-Pfad:
    Code (Bash):
    1.  
    2. # Versuch 1:
    3. > ./4winsBot
    4. bash: ./4winsBot: No such file or directory
    5. # bash versucht hier die Binary zu laden, indem sie an den dynamischen Linker übergeben wird (ld-linux).
    6.  
    7. # mal genauer schauen, welcher Loader verlangt wird:
    8. > readelf -l 4winsBot
    9.  
    10. Elf file type is EXEC (Executable file)
    11. Entry point 0x4027c0
    12. There are 9 program headers, starting at offset 64
    13.  
    14. Program Headers:
    15.   Type           Offset             VirtAddr           PhysAddr
    16.                  FileSiz            MemSiz              Flags  Align
    17.   PHDR           0x0000000000000040 0x0000000000400040 0x0000000000400040
    18.                  0x00000000000001f8 0x00000000000001f8  R E    0x8
    19.   INTERP         0x0000000000000238 0x0000000000400238 0x0000000000400238
    20.                  0x000000000000001a 0x000000000000001a  R      0x1
    21.       [Requesting program interpreter: /lib/ld-linux-x86-64.so.2]                                   # <-- die interessante Zeile, das hier ist der geforderte Linker
    22.   LOAD           0x0000000000000000 0x0000000000400000 0x0000000000400000
    23.                  0x000000000000b93e 0x000000000000b93e  R E    0x200000
    24.   LOAD           0x000000000000bdd0 0x000000000060bdd0 0x000000000060bdd0
    25.                  0x00000000000003ae 0x00000000000008f8  RW     0x200000
    26.   DYNAMIC        0x000000000000bdf0 0x000000000060bdf0 0x000000000060bdf0
    27.                  0x0000000000000200 0x0000000000000200  RW     0x8
    28.   NOTE           0x0000000000000254 0x0000000000400254 0x0000000000400254
    29.                  0x0000000000000044 0x0000000000000044  R      0x4
    30.   GNU_EH_FRAME   0x000000000000ac60 0x000000000040ac60 0x000000000040ac60
    31.                  0x0000000000000104 0x0000000000000104  R      0x4
    32.   GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
    33.                  0x0000000000000000 0x0000000000000000  RW     0x10
    34.   GNU_RELRO      0x000000000000bdd0 0x000000000060bdd0 0x000000000060bdd0
    35.                  0x0000000000000230 0x0000000000000230  R      0x1
    36.  
    37.  Section to Segment mapping:
    38.   Segment Sections...
    39.    00    
    40.    01     .interp
    41.    02     .interp .note.ABI-tag .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame .gcc_except_table
    42.    03     .init_array .fini_array .jcr .dynamic .got .got.plt .data .bss
    43.    04     .dynamic
    44.    05     .note.ABI-tag .note.gnu.build-id
    45.    06     .eh_frame_hdr
    46.    07    
    47.    08     .init_array .fini_array .jcr .dynamic .got
    48.  
    49. # gibt's den überhaupt?
    50. > ls /lib/ld-linux-x86-64.so.2
    51. ls: cannot access '/lib/ld-linux-x86-64.so.2': No such file or directory
    52. # => nein.
    53.  
    54. # Gegentest: manuell den Loader angeben:
    55. > /lib64/ld-linux-x86-64.so.2 ./4winsBot
    56. # => funktioniert.
    57.  
    Vielleicht hat das Arch deines Kumpels zufällig den Linker unter dieser Adresse liegen, Standard ist das mWn nicht.
    Warum die IDE so nen Blödsinn macht kann ich dir nicht sagen, ich nutze selber CLion. Erzeugt Code::Blocks zufällig ein Makefile oder besser CMake-Projekt, das man manuell compilieren könnte?

    Gruß
    Rakorium

  11. #11
    Brillenschlange

    (Threadstarter)

    Avatar von Kenobi van Gin
    Registriert seit
    Jul 2013
    Ort
    .\
    Beiträge
    2.630
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte binary wird nicht ausgeführt

    Zitat Zitat von Rakorium-M Beitrag anzeigen
    Ich kann das Problem nachvollziehen (Linux Mint 19.1 Cinnamon). Anscheinend setzt dein Compiler einen falschen Loader-Pfad:
    Code (Bash):
    1. Blablabla ist für mich alles Bahnhof, da kann ich also nichts zu sagen :D
    2.  
    Erzeugt Code::Blocks zufällig ein Makefile oder besser CMake-Projekt, das man manuell compilieren könnte?
    Mhm. Ich kann mal gucken Also müsste ich wenn in den Linker-Einstellungen was ändern?

    [EDIT:]
    Hier mal die Properties des Projekts:

    Spoiler: 

    Klicke auf die Grafik für eine größere Ansicht 

Name:	project properties.png 
Hits:	5 
Größe:	76,9 KB 
ID:	54244
    Geändert von Kenobi van Gin (01.06.19 um 10:05 Uhr)

  12. #12
    Mitglied
    Registriert seit
    Jul 2013
    Beiträge
    331
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    Sry falls zu viele Details. Zusammengefasst: Code::Blocks baut Mist, Loader/Linker heißt das was er falsch setzt, und übergangsweise kannst du die Datei mit "/lib64/ld-linux-x86-64.so.2 ./4winsBot" ausführen.

    Würde mich mal interessieren was da unter "Project Build Options" steht - taucht dort irgendwo was mit ld-linux-*.so.* auf?
    Für diesen Beitrag bedankt sich Kenobi van Gin

  13. #13
    Brillenschlange

    (Threadstarter)

    Avatar von Kenobi van Gin
    Registriert seit
    Jul 2013
    Ort
    .\
    Beiträge
    2.630
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    Ne, ist schon okay, dass du viele Details lieferst. Ich lern ja auch gern dazu, und vielleicht kann jemand anderes was damit anfangen.
    Das Fenster von Project Build Options sieht so aus:

    Spoiler: 

    Klicke auf die Grafik für eine größere Ansicht 

Name:	project build options.png 
Hits:	8 
Größe:	70,1 KB 
ID:	54245


    Soweit ich das sehe, steht auch unter den anderen Tabs nichts von der von dir genannten library (?).

    Wenn ich die lib voranstelle, funktioniert das Ausführen schonmal *whoop whoop*. Hast du zufällig auch noch eine Idee, wie ich das ohne Workaround hinkriege?

  14. #14

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    @Kenobi van Gin: Versuch mal "statisch" zu linken.

    Ich hab nur das hier dazu gefunden: Klick

    NAME

    ld.so, ld-linux.so - dynamic linker/loader

    SYNOPSIS

    The dynamic linker can be run either indirectly by running some
    dynamically linked program or shared object (in which case no
    command-line options to the dynamic linker can be passed and, in the
    ELF case, the dynamic linker which is stored in the .interp section
    of the program is executed) or directly by running:

    /lib/ld-linux.so.* [OPTIONS] [PROGRAM [ARGUMENTS]]

    DESCRIPTION

    The programs ld.so and ld-linux.so* find and load the shared objects
    (shared libraries) needed by a program, prepare the program to run,
    and then run it.

    Linux binaries require dynamic linking (linking at run time) unless
    the -static option was given to ld(1) during compilation
    Wenn ich richtig lese bedeuet das (letzter Absatz) du mußt "statisch linken" - mit "-static" Option für "ld" bzw. in den "Compiler Settings".

    Screenshot aus deinem herausgelöst, hier die Option "-static":




    Hier noch ein Reading dazu, was aber relativ komplex beschrieben ist:
    https://lwn.net/Articles/631631/

    Dynamically linked programs

    So far we've assumed the program being executed is statically linked and skipped over steps that would be triggered by the presence of a PT_INTERP entry in the ELF program header. However, most programs are dynamically linked, meaning that required shared libraries have to be located and linked at run-time. This is performed by the runtime linker (typically something like /lib64/ld-linux-x86-64.so.2), and the identity of this linker is specified by the PT_INTERP program header entry.
    Für diesen Beitrag bedankt sich Kenobi van Gin
    Geändert von theSplit (01.06.19 um 10:39 Uhr)
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ dwrox.net

  15. #15
    Brillenschlange

    (Threadstarter)

    Avatar von Kenobi van Gin
    Registriert seit
    Jul 2013
    Ort
    .\
    Beiträge
    2.630
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    Zitat Zitat von theSplit Beitrag anzeigen
    Wenn ich richtig lese bedeuet das (letzter Absatz) du mußt "statisch linken" - mit "-static" Option für "ld" bzw. in den "Compiler Settings".
    Ja, der Eintrag war mir auch schon aufgefallen. War mir aber nicht sicher, ob das was damit zu tun hat. Das Setzen der Flag Static linking macht den Unterschied. Habe damit eben das Programm neu compiliert und kann es jetzt im Terminal ausführen. Danke schonmal dafür
    Jetzt ist natürlich die Datei mit 1,63 MB zu vorher um die 50 KB auch deutlich größer. Ist ja logisch. Aber ich dachte, dass eben gerade bei Linux die Librarys eigentlich lokal vorliegen und deshalb nicht mit eincompiliert werden müssen? Wie kommt es also, dass offenbar Linux Mint die benötigte Standardlibrary nicht default mit installiert hat?

    Nebenbei bemerkt kann ich die Datei immer noch nicht per Doppelklick ausführen. Das stört mich nicht weiter, im Terminal reicht mir. Oder ist das bei Linux sowieso nicht üblich, dass beim Doppelklick einfach das System von sich aus ein Terminal öffnet? Bei Batch-Dateien oder auch exe-Dateien für die Konsole unter Windows passiert das ja automatisch.

  16. #16

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    @Kenobi van Gin: Das mit dem Doppelklick kann ich dir nicht erklären

    Was du machen kannst, erstelle dir einen Starter für die Anwendung. Ich habe hier nur Xfce4, daher weiß ich nicht wie das Mint geht.

    Aber wenn ich einen Starter anlege, mit dem Arbeitsverzeichnis für die Anwendung und mit entsprechenden Befehl klappt es. Befehl zum Starten einer Anwendung, im Terminal, wäre dann das [kw]./pathToFile[kw] zum ausführen, dann startet auch die Anwendung direkt im Terminal.

    Es sei aber anzumerken, du musst mittels chmod +x als Executable setzen, sonst erlaubt das OS nicht die Datei auszuführen.

    Edit: Mal anders gefragt, welches Desktop verwendest du?
    Bei Xfce4 geht das relativ einfach.
    Geändert von theSplit (02.06.19 um 15:45 Uhr)
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ dwrox.net

  17. #17
    Brillenschlange

    (Threadstarter)

    Avatar von Kenobi van Gin
    Registriert seit
    Jul 2013
    Ort
    .\
    Beiträge
    2.630
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    @theSplit: Jo, danke, die Starter kenne ich. Ist für diese Executable im Speziellen auch ziemlich latz, da brauche ich das eh nicht. Hatte schon überlegt, ob das wohl damit zusammenhängt, dass das Ding keine Dateiendung hat und das OS darum nicht weiß, womit es die Datei öffnen soll. Vielleicht sähe die Sache anders aus, wenn ich als Standardanwendung für Dateien ohne Endung das Terminal setze. Ist aber wie gesagt in dem Fall auch egal.

    Ich glaube ich habe den MATE-Desktop. Macht das Sinn? Bin ziemlich neu bei Linux
    Jo, Homepage von Mint sagt, dass es der MATE-Desktop ist. Habe auch in anderem Zusammenhang schon ein paar Starter erstellt. Das wäre also für den Fall nicht das Problem
    Für diesen Beitrag bedankt sich theSplit

  18. #18

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    @Kenobi van Gin: Du hast mit deiner Vermutung nicht unrecht, im Grunde weiß das OS nicht wie es die Datei interpretieren soll. Daher auch das: "./ProgrammStarten und das setzen des Executable Flags mittels "chmod +x".

    Allerdings kann ich dazu keine qualifizierte(re) Antwort geben.
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ dwrox.net

  19. #19
    Mitglied
    Registriert seit
    Jul 2013
    Beiträge
    331
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    Die "Anwendung", mit der das OS Programme (unabhängig von der Dateiendung) öffnen will, ist üblichweise genau der dynamische Linker ld-linux.so, der bei dir Probleme macht. So wie "bash" Shell-Scripte ausführt und "python" Python-Code, so führt ld-linux eben ELF-Dateien aus (ELF = exe für Linux).
    Ich bekomme gerade das Gefühl, dass an deinem System etwas mehr kaputt ist als nur die Code::Blocks-Toolchain. Kannst du mal den Output von ldd /bin/sh posten? Oder hast du mal was an Kernel oder glibc von deinem System geändert?

  20. #20
    Brillenschlange

    (Threadstarter)

    Avatar von Kenobi van Gin
    Registriert seit
    Jul 2013
    Ort
    .\
    Beiträge
    2.630
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    (Bewusst) geändert habe ich da nix. Die Installation ist auch noch nicht besonders alt. Ich hatte allerdings ursprünglich mal eine andere Code::Blocks-Version drauf, habe die dann wieder deinstalliert und eine aktuellere aus einem anderen Repository (oder so?) installiert. Vielleicht ist dabei was schief gegangen

    Ausgabe von ldd:

    Spoiler: 

    Klicke auf die Grafik für eine größere Ansicht 

Name:	ldd.png 
Hits:	11 
Größe:	204,7 KB 
ID:	54266


    Ist das das, was dort stehen sollte? Bzw. falls nicht, was ist denn falsch?

  21. #21
    Defender of Freedom

    Administrator

    Avatar von Metal_Warrior
    Registriert seit
    Aug 2013
    Ort
    /dev/mapper/home
    Beiträge
    3.530
    ngb:news Artikel
    7

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    Kann es sein, dass du ein 64bit-System ohne Multiarch hast? Da liegen nämlich die Libraries aus historischen Gründen oft noch rein unter /lib64, während die 32bit-Dateien noch unter /lib oder /lib32 hängen. Wenn du jetzt 64bit hast, und kein Multiarch installiert, GCC aber schon vermutet, dass die Libraries immer unter /lib liegen, hast du natürlich ein Ausführungsproblem, wie das Genannte. Falls /lib nicht existiert (bin mir bei Mint nicht so sicher, die nehmen meist ein verhunztes Debian (also Ubuntu) und tackern da dann selber noch rum), kannst du das auch direkt auf /lib64 linken, dann ist dein Problem auch Geschichte. Alternativ einfach die ld-linux-x86-64.so.2 dort rein verlinken.
    GCM/IT/S/O d-(--) s+:- a? C++(+++) UL+++(++++)$ P L+++>++++ W++ w@$ M--$ PS+(++) PE(-) Y+(++) PGP++(+++) t+ 5(+) R* !tv b+(++++) DI(++) G++ e+>++++ h(--) y?
    Das Ende ist nahe: Dem Harleyschen Kometen folgt der Gammablitz beim Scheißen.

  22. #22
    Mitglied
    Registriert seit
    Jul 2013
    Beiträge
    331
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    Was unter ldd /bin/sh steht sieht gut aus - dort liegt der Loader unter Ubuntu/Mint üblicherweise.

    Du kannst natürlich einen Symlink von /lib64/ld-linux-x86-64.so.2 auf /lib/ld-linux-x86-64.so.2 setzen - aber das löst das Problem nur für dich, nicht für Andere, die deine Binary bekommen. Was der Compiler genau für Probleme hat kann ich dir nicht sagen - du könntest höchstens mal versuchen dein Projekt außerhalb von Code::Blocks auf der Kommandozeile zu bauen.

  23. #23
    Brillenschlange

    (Threadstarter)

    Avatar von Kenobi van Gin
    Registriert seit
    Jul 2013
    Ort
    .\
    Beiträge
    2.630
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    Zitat Zitat von Metal_Warrior Beitrag anzeigen
    Kann es sein, dass du ein 64bit-System ohne Multiarch hast?
    Keine Ahnung Wie findet man das raus?

    Zitat Zitat von Rakorium-M Beitrag anzeigen
    aber das löst das Problem nur für dich, nicht für Andere, die deine Binary bekommen.
    Andere (namentlich mein Bekannter) scheinen ja das Problem gar nicht zu haben Ich dachte auch eigentlich immer, dass eben Librarys unter Linux (anders als bei Windows) normalerweise dynamisch gelinkt werden, um die Portabilität auf andere Distributionen zu gewährleisten. (Naja, außerdem spart es natürlich Speicherplatz.) Darum dachte ich jetzt, dass bei mir einfach irgendwas fehlt.

    Ich habe auch Mint eigentlich nur genommen, weil ich mal irgendwo gelesen hatte, dass das für Windows-Umsteiger ganz nett sein soll. Hatte aber auch schonmal andere Distributionen. Wenn ihr einen Vorschlag für eine "bessere" Distri habt, bin ich da auch offen

  24. #24
    Defender of Freedom

    Administrator

    Avatar von Metal_Warrior
    Registriert seit
    Aug 2013
    Ort
    /dev/mapper/home
    Beiträge
    3.530
    ngb:news Artikel
    7

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    @Kenobi van Gin: Wenn du das grad nicht weißt, und auch kein Skype oder Steam installiert hast, hast du kein Multiarch installiert.

    Libraries werden unter Linux üblicherweise auch dynamisch gelinkt, aber wenn dein Compiler dir natürlich ne 32bit-Anwendung rauswirft, und dein System das nicht unterstützt, dann gehts halt erstmal nicht. Oder eben umgekehrt.

    Bessere Distro: Debian. Warum? Stabil, stabil, stabil, und die Mutter von Ubuntu und Mint. Oder, um es böse auszudrücken: Nicht verfrickelt von Leuten, für die "Neu" generell ein Synonym für "Besser" ist, und die lieber was kaputt machen, als "alt" zu verwenden.
    Für diesen Beitrag bedankt sich Kenobi van Gin
    GCM/IT/S/O d-(--) s+:- a? C++(+++) UL+++(++++)$ P L+++>++++ W++ w@$ M--$ PS+(++) PE(-) Y+(++) PGP++(+++) t+ 5(+) R* !tv b+(++++) DI(++) G++ e+>++++ h(--) y?
    Das Ende ist nahe: Dem Harleyschen Kometen folgt der Gammablitz beim Scheißen.

  25. #25
    Brillenschlange

    (Threadstarter)

    Avatar von Kenobi van Gin
    Registriert seit
    Jul 2013
    Ort
    .\
    Beiträge
    2.630
    ngb:news Artikel
    1

    Re: [Linux Mint] Selbst compilierte Binary wird nicht ausgeführt

    Zitat Zitat von Metal_Warrior Beitrag anzeigen
    @Kenobi van Gin: Wenn du das grad nicht weißt, und auch kein Skype oder Steam installiert hast, hast du kein Multiarch installiert.
    Mhm, ich weiß nicht, dass ich ein Multiarch installiert habe, Skype habe ich allerdings drauf...


    Zitat Zitat von Metal_Warrior Beitrag anzeigen
    wenn dein Compiler dir natürlich ne 32bit-Anwendung rauswirft, und dein System das nicht unterstützt, dann gehts halt erstmal nicht. Oder eben umgekehrt.
    Ist das etwa nicht so wie bei Win, dass 64bit-Systeme zumindest in der Regel auch 32bit-Executables unterstützen? Das hieße also, ich muss, egal als was ich es compiliere (32 oder 64bit), immer damit rechnen, dass die jeweils andere Gruppe mein Programm nicht ausführen kann? Das ist ja unpraktisch...

    Zitat Zitat von Metal_Warrior Beitrag anzeigen
    Bessere Distro: Debian. [...]
    Okay, vielleicht gucke ich mir das mal an. Bin bislang noch nicht so gesettlet, dass ich nicht mehr wechseln könnte.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •