(Я не совсем уверен, если это место, чтобы спросить об этом, при необходимости, пожалуйста, перейдите в другое сообщество Stack Exchange — если это возможно)
Я изучаю C ++ на своем Raspberry Pi (с Raspian (Debian), кстати), и я создал простую программу Hello World с Geany IDE. Я компилирую, собираю программу, а затем запускаю ее. Однако я получаю ошибку:
./geany_run_script.sh: 5: ./geany_run_script.sh: ./HelloWorld: Permission denied------------------
(program exited with code: 126)
Press return to continue
Команда компиляции g++ -c "%f"
и команда построения g++ -o "%e" "%f"
,
Если вы считаете это полезным, тип файла .cxx
,
Я хотел бы использовать Geany для запуска из-за удобства. К сожалению, я не могу запустить его с терминалом как суперпользователь, даже после использования chmod +x
,
Ваша проблема, похоже, не относится к Geany IDE. Так что вам нужно изменить права на исполняемый файл. Пожалуйста, попробуйте следующую команду: chmod 777 your_filename
Для запуска файла в Linux пользователь должен иметь x
либо на пользователя, либо на группу. Это выглядит как
---x--x--x
или в шестнадцатеричном 0111 в файловых системах POSIX. Так chmod +x
должен работать на большинстве систем, например, EXT [2 | 3 | 4] или XFS. Таким образом, ваш старт был правильным. Кстати: при компиляции C-файла с помощью Geany, он уже установлен как исполняемый.
Как вы упомянули, ваш USB-накопитель отформатирован в FAT32, который не поддерживает POSIX, поэтому chmod не даст никакого эффекта. Однако права доступа к файлу, например, Выполнение чего-либо основано на использовании маски для монтажа. В традиционных системах Linux это можно настроить в /etc/fstab
, Используя udev или что-то еще, где-то еще это можно также настроить (читай: чем это зависит, что вы используете для монтирования флешки)
Кроме того, крепление может установить устройство как noexec
что в значительной степени является хорошей идеей для устройств, таких как USB-флешки или неизвестные CD / DVD. Однако, если этот флаг установлен во время монтирования, ваши файлы на этом устройстве не могут быть выполнены — разрешены только чтение и запись. Опять же это может быть установлено на /etc/fstab
или, может быть, где-то еще, в зависимости от того, что вы могли бы использовать в дополнение.
Чтобы проверить это, выполните команду mount без параметров и. Это даст вам список, где ваше устройство USB должно быть включено.