Не могу запустить "разделяемую библиотеку" в nautilus
Я недавно переустановил Ubuntu в 64-битной версии (до того, как она была в 32-битной версии). У меня была домашняя папка на одном разделе, а система на другом. Поэтому, когда я переустановил, я сохранил свою старую домашнюю папку.
Моя проблема в том, что теперь мои исполняемые файлы C++, которые используют SDL, распознаются как "разделяемая библиотека", и поэтому я не могу напрямую запускать их из nautilus. Я искал решение и обнаружил, что оно было вызвано ошибкой mime-типа (см. https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1639531), в которой рассматривается каждый файл. помечен как "независимый от позиции исполняемый файл" (gcc) как "разделяемая библиотека".
Поскольку кажется, что нет способа заставить mime-тип распознавать его нормально, я хотел бы иметь возможность запускать файлы "разделяемых библиотек" в nautilus (так как они запускаются из терминала). Я попытался установить в качестве программы по умолчанию для этого типа файла приложение "Запуск программного обеспечения", но при попытке запустить его ничего не происходит.
Как правильно заставить nautilus запускать файл определенного типа, а не связывать его с приложением?
1 ответ
Лучшее решение - создать средство запуска рабочего стола, передав полное имя файла в оболочку, как в примере ниже.
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Run Executable
Comment=Run Executable
Exec="/bin/sh" -c %f
Icon=application.png
Terminal=false
Сохраните его под любым именем в ~/.local/share/applications.
После этого откройте Nautilus, выберите исполняемый файл, откройте меню содержимого, щелкнув правой кнопкой мыши и выберите новую панель запуска в диалоговом окне "Открыть с помощью другого приложения".
Таким образом, вы может быстро запустить любой исполняемый файл.
У меня та же проблема. Когда я нажимаю на скомпилированный исполняемый файл в Nautilus (файлы 3.20.4), я получаю сообщение:
не установлено приложение для файлов "общих библиотек"
Есть два обходных пути.
Просто создайте однострочный скрипт в том же каталоге:
./my_program
и установите Разрешить выполнение файла как программы в Nautilus. (Или добавить
+x
с помощьюchmod
.)- Откройте этот каталог в Терминале и запустите там. (или перетащите файл из Наутилуса в Терминал)