Bevor ich meiner Frage mehr Details hinzufüge, muss ich etwas sehr Wichtiges sagen:
Ja, in meinem Skript ist "Ausführen der Datei als Programm zulassen" aktiviert.
Die Frage selbst:
Aus Programmiergründen (gemeinsam genutzte Bibliotheken) kann ich mein Programm nicht nur über die ausführbare Datei ausführen, da ich LD_LIBRARY_PATH
vor der Ausführung des Programms darauf zugreifen muss . Ich habe dieses Skript erstellt, um dies zu tun (wenn ich bedenke, dass ich zum ersten Mal ein Skript schreibe):
#!/bin/bash
#Get the current directory and append the SO's location
currentDir=$(pwd)'/libs/'
#Change the library path
export LD_LIBRARY_PATH=$currentDir
#Run the program
./program
Nachdem ich dies vom Terminal aus ausgeführt hatte, dachte ich, dass es funktioniert hat, es gab keine Fehler und das Programm beschwerte sich nicht über gemeinsam genutzte Bibliotheken. Aber leider .sh
passiert nichts , wenn ich versuche, auf die Datei von Nautilus zu doppelklicken. Das Schlimmste ist auch, dass ich, da ich es über die GUI ausführe, keine Ahnung habe, welchen Fehler es bekommt. Ich verwende Ubuntu 14.04 und die ausführbare Datei ist ein C ++ - Programm, das die SFML-Bibliotheken verwendet (Ja, ich könnte nur die Abhängigkeiten haben, aber SFML wird normalerweise nicht auf Linux-Computern installiert, und das ist nicht der Punkt).
quelle
notify-send $LD_LIBRARY_PATH
unter der Linie hinzuexport…
und testen Sie sie erneut.cd "your path even with spaces"
Antworten:
Das Anwesen Allow executing file as programist nicht genug.
Ändern Sie die Einstellungen in den Nautilus-Einstellungen
oder über Terminal:
quelle