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.
Herzlichen Dank, das war die Lösung (-no-pie allerdings als Linker-Option)! Kannst Du mir etwas mehr über die Problematik erzählen? Danke & Gruß Axel F.
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.
:
Bearbeitet durch User
Ah ja, genau da kommt dabei raus. Danke nochmals & schönes Wochenende!
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.