Codeblocks: Release-Version als Shared library??

OP #7412524

Code::Blocks Version 20.03 unter Linux Mint

Programm erstellt, Debug-Version aus Codeblocks heraus gestartet läuft einwandfrei. Wenn ich in den Release-Ordner gehe und das dortige Programm starten will, möchte Linux ein Programm zum öffnen der Datei haben und erkennt mein Programm als "Gemeinsame Bibliothek". Wenn ich ein Terminal an dieser Stelle aufmache, kann ich mein Programm ohne Probleme starten; läuft. Build Einstellung habe ich mal auf "Konsole-Applikation" und mal auf "GUI-Applikation" gestellt- keine Änderung.

Irgendwelche Tips?

Axel F.

Ich vermute, du bekommst ein "PIE"-Executable aus dem Compilerlauf (Für ASLR), und dein Filemanager (mit dem du draufklickst) kennt das noch nicht.

Filemanager aktualisieren, oder "-no-pie" in die Compiler-Optionen packen.

Axel V. schrieb:

Kannst Du mir etwas mehr über die Problematik erzählen?

Einmal ist es ein: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0 und ansonsten ein: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked

Der Unterschied ist, dass das PIE-Executable beim Start vom ld.so an eine zufällige Speicheradresse geladen wird, und damit einen Schutz vor manchen Angriffen bietet, weil der Exploit-Payload keine bekannten Funktionsadressen/Speicherstellen mehr voraussetzen kann.

Problem: die Mime-Typ-Erkennung deines Filemanagers erkennt diese Executables als .so - Bibliothek, nicht als ausführbares Programm, und will sie deshalb nicht starten.

Vergleich mal die Ausgabe von "file meinProgramm" und "xdg-mime query filetype meinProgramm", für die PIE und !PIE-Compilate, da wird das Problem deutlich.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 3 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.