Прежде чем добавить больше деталей к моему вопросу, я должен сказать кое-что очень важное:
Да, в моем сценарии включена функция «Разрешить выполнение файла как программы».
По причинам программирования (разделяемые библиотеки) я не могу выполнить свою программу только из исполняемого файла, потому что мне нужно получить доступ к LD_LIBRARY_PATH
перед выполнением программы. Я создал этот сценарий для этого (учитывая, что я пишу сценарий впервые):
#!/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
После запуска этого из терминала я подумал, что он работает, ошибок не было и Программа не жаловалась на общие библиотеки. Но, к сожалению, если я попытаюсь дважды щелкнуть файл .sh
в Nautilus, ничего не произойдет. Хуже всего то, что, поскольку я запускаю его из графического интерфейса, я понятия не имею, какую ошибку он получает. Я использую Ubuntu 14.04, а исполняемый файл - это программа на C ++, использующая библиотеки SFML (да, у меня могут быть зависимости, но SFML обычно не устанавливается на компьютерах с Linux, и это не важно).
Свойство Позволяет выполнять файл, как программа недостаточно.
Изменяют настройки в Предпочтениях Наутилуса
<час>или через терминал:
gsettings set org.gnome.nautilus.preferences executable-text-activation ask