Warum ist unter Linux eine mit Code::Blocks erstellte Application eine Shared Library außerhalb der IDE?

...komplette Frage anzeigen

2 Antworten

Das sind die Anti-Automatisierungen eines Linuxsystems,  die wir ja so schätzen und einer der Gründe, warum Linux so sicher ist und kein Problem mit Schadsoftware hat....

Der Compiler erzeugt eine ganz "normale" Datendatei als Ausgabe und die ist nicht automatisch ausführbar !  Du musst sie explizit zunächst ausführbar machen !  Sie wird nicht automatisch zu einem ausführbaren Programm,  z.B. nur durch einen Namen wie programm.exe ( wie das bei Windows ist ) !


chmod 0766 deineProgrammdatei

Das ist mindestens notwendig,  um deine Programmbibliothek für den Nutzer als Anwendung ausführbar zu machen...

Eigentlich ist das ein ganz triviales Anfängerwissensdefizit und solche grundsätzlichen systemischen Sachen sollte man als Entwickler schon wissen,  bevor man erste Versuche wagt, unter Linux eigene Anwendungen zu erstellen... 

Wenn du das erst mal alles weisst....   ....dann viel Erfolg beim Programmieren !


JupStrunk 30.08.2017, 14:19

danke, dass Du mir helfen willst... :)

aber das ist nicht das Problem...
obwohl es als eine shared lib erkannt wird, ist das "is executable" Flag gesetzt...

und chmod 0766 hat da auch keinen Effekt...

wenn's so einfach währ, hätte ich das längst gelöst... :D

0
Jack63G 30.08.2017, 16:13

Dann kann es fast nur an den Einstellungen des Compilers und inbes. des Linkers liegen....  Deine Ausgabedatei scheint keinen elf-Header zu haben....  Helfen kann kann man nicht wirklich , solange das gesamte Projekt nicht bekannt ist,  insbes. die Compiler-  und Linkereinstellungen....


0

ok,

nach 2 Tagen verzweifelter Suche habe ich das Problem identifiziert...

es ist ein Bug: https://bugs.launchpad.net/ubuntu/+so/+bug/1639531

allerdings scheint sich dafür niemand verantwortlich zu sehen...
also kann die Lösung noch auf sich warten lassen...

bis dahin habe ich eine "Not-Lösung":

1. Datei erstellen: "~/.local/share/applications/RunExec.desktop"
je nach System kann es auch "/root/usr/share/applications/RunExec.desktop" sein

2. Datei öffnen und eintragen:

   [Desktop Entry]
Exec=%f
MimeType=application/x-sharedlib;
Name=RunExec
NoDisplay=true
Type=Application

jetzt können die Apps wie gewohnt mit einem Doppelklick gestartet werden !!!

bis dann...

Jack63G 30.08.2017, 16:20

Wow !  Sehr gut,  dass du das herausgefunden hast,  weiter so !

Wenn ich so ein Problem habe,  suche ich auch immer weiter und gebe nicht so schnell auf....

0
JupStrunk 30.08.2017, 21:50
@Jack63G

danke ;)

ich meine, ich programmiere seit Ewigkeiten, habe schon damit angefangen, bevor es den Comodore VC-20 gab (jetzt rechne mal, wie alt ich ungefähr sein könnte :D )...
also an den Einstellungen konnte es somit nicht liegen...

bei Linux bin ich zwar nicht sooo der Experte, bisher hatte ich aber auch da keine größeren Probleme...
bei älteren Linux Systemen lief es immer wie erwartet...

naja, solange es jetzt funktioniert...
und hoffentlich dauert's nicht zu lange, bis ein Bugfix bereitgestellt wird... :D

auf jeden Fall gebe ich dir ein "danke", für den Versuch mir zu helfen... ;)

bis dann

0

Was möchtest Du wissen?