| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > Не могу скомпилировать файл cpp |
| Автор: Alexey91 30.9.2011, 14:23 |
| Здравствуйте! Есть файл a.cpp Выполняю g++ -c a.cpp -o prog ./prog Выдается bash: ./prog отказано в доступе В чем может быть дело? |
| Автор: newbee 30.9.2011, 15:00 | ||
Скорее всего раздел смонтирован с опцией noexec. Быстрое решение: перемонтировать его
|
| Автор: Alexey91 30.9.2011, 16:32 |
| newbee Раньше (т.е. сегодня) компилировалось без проблем, и сегодня возникли проблемы Первый способ не смог сделать, что за /path/, bash не находит его Второй способ, сделал, но не помогло |
| Автор: bsa 30.9.2011, 16:48 | ||
Позвони системному администратору и реши этот вопрос с ним. Боюсь, уровня твоих знаний *nix недостаточно, чтобы безопасно решить проблему. Добавлено через 1 минуту и 2 секунды / - просто убило. Ты себе как представляешь корень с опцией noexec? |
| Автор: newbee 30.9.2011, 17:05 |
| Лол я только что ради фана перемонтировала, теперь думаю, как отмонтироваться обратно)) А ваще noexec-корень может быть в чруте. Но можно ли его перемонтировать обратно... Блин, че делать то)) |
| Автор: newbee 30.9.2011, 18:46 |
| К счастью то был рабочий комп, а не пражский сервер. Надо было убегать, выключилась через sysrq. Через него же можно смонтировать корень в рид-онли, не знаю, сбросится ли при этом noexec-флаг. В следующий раз попробую) |
| Автор: Alexey91 30.9.2011, 18:46 |
| Кому можно позвонить? Добавлено через 5 минут и 3 секунды newbee, Про первый способ alex@alex-101:~/Рабочий стол/mzki/system_dh$ sudo mount ~ -o remout,exec mount: невозможно найти /home/alex в /etc/fstab или /etc/mtab Добавлено через 6 минут и 29 секунд Да, перезагружался Про второй способ: нашел в /etc/fstab сделал в консоли chmod 666 /etc/fstab нашел строку, где noexec, заменил на exec, перезагрузился, и ничего не поменялось( |
| Автор: bsa 3.10.2011, 00:31 | ||
| Alexey91, верни все обратно. В том числе и режим доступа к fstab: sudo chmod 0644 /etc/fstab Во-первых, проверь, что у тебя за файл создался. для этого выполни в каталоге с экзешником: ls -l должна быть строчка такого вида:
Тому, кто устанавливал тебе систему, если это домашний комп. Или любому знакомому линуксоиду. |
| Автор: DRUID3 4.10.2011, 14:55 |
| |
| Автор: bsa 5.10.2011, 13:57 |
| Alexey91, я еще раз проверил твою строку компиляции. Ты компилируешь исходник, а не собираешь программу. Ключ -c приводит к тому, что компилятор делает объектный файл (обычно, с расширением *.o в *nix или *.obj под Windows). Но ты явно указал другое имя (ключ -o), поэтому расширение не добавилось. А так как объектный файл не является исполняемым, то и запустить его нельзя. Быстрое решение: убери ключ -c |