Kann mein Programm nur mit Terminal starten



  • Hi,
    ich habe ein OpenGL Grafik Programm geschrieben was unter Linux läuft.
    Funktioniert auch wenn das in der Entwicklungsumgebung (Code::Blocks) starte, aber wenn ich die fertige Anwendung starten will, also einfach die Datei im Konqueror anklicke, passiert nichts.
    Ich kann es nur über die Kommandozeile bzw. Terminal aufrufen.
    Woran kann das liegen?
    Ich hab schon probiert in der "main" Funktion die Parameter int argc, char argv[]* abzufangen, aber das ändert gar nichts.
    Kann mir bitte jemand helfen?



  • Möglicherweise ein Problem mit dem Arbeitsverzeichnis.
    Läuft es auch, wenn du es im Terminal von einem beliebigen Verzeichnis aus startest (d.h. nicht das Projektverzeichnis)?



  • Stimmt, da stimmt was nicht.
    Wenn ich das Programm vom Terminal aus dem übergeordneten Verzeichnis aufrufe kann er das Programm nicht starten. Da seh ich dann auch warum nicht.
    Da kann er dann die Bibliothek (*.so) Datei nicht laden.
    Aber wenn ich die Bibl. in das selbe Verzeichnis lege, wo auch das Programm liegt, geht es auch nicht, weil das aktuelle WorkingDirectory das ist, wo ich mit dem Terminal gerade bin.
    Unter Windows kommt bei sowas immer ne MessageBox "Erorr blablabla.dll konnte nicht gefunden werden". Da konnte man es ganz einfach ins system32 Verzeichnis packen.
    Wie macht man das denn unter Linux mit den Bibliotheken?



  • Da kommen die Bibliotheken nach /usr/lib oder /usr/local/lib.
    Hier steht auch ein Wort zu den Namenskonventionen, an die man sich halten sollte:
    http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html


Anmelden zum Antworten