2010-09-02 3 views
0

Я пытаюсь запустить программу C/C++ на Ubuntu.Запуск исполняемого файла на Ubuntu

Так на первый g++ не работает вообще в оболочке, так что я установил его с помощью команды

sudo aptitude update && sudo aptitude install g++ 

поэтому установил его, и когда я написал самую простую программу, составленный

g++ -Wall a.cpp -o d 

но когда я пытался выполнить это просто написал «D» в командной строке и заявляет, что команда не найдена, но если я типа ls в оболочке он показывает мне, что есть исполняемый файл с именем d

Рад, если кто-то может очистить меня от меня

ответ

2

Возможно потому, что текущий каталог не находится на вашем пути. Попробуйте

$ ./d 
0

При выполнении файла, который не в одном из обычных мусорных каталогов (просто думать об этом как-то, что вы не установить из пакета или что не пришел от ОС) вас необходимо указать путь к файлу.

В этом случае, что вы хотите ./d

+0

thanx для действительно быстрого ответа .. Я использовал сейчас ./d, и это сработало. , но это странно, поскольку я обычно работаю над системой linux и там достаточно написать «d» (если вы находитесь в том же каталоге – darven

+0

Ubuntu - это система Linux. Разница в том, что на одной системе ваш '$ PATH' включает '.', что является плохой идеей безопасности. –

6

Вы должны использовать ./d (если вы находитесь в каталоге) или полный путь исполняемого файла.

Когда вы набираете «d», ваша ОС автоматически смотрит в каталоги $ PATH. Вы можете выяснить, каков полный путь любого исполняемого файла (например, ls или rm) с помощью команды «which».

Если это не работает, проверьте, что файл является исполняемым («х» флаг) и, при необходимости, просто добавьте его с

chmod +x file 
+0

+1, но g ++ устанавливает исполняемый файл по умолчанию, а chmod здесь не нужен. Хотя вы на это, однако, хорошо упомянуть, как проверить этот флаг (ls -l является самым простым). – 2010-09-06 14:03:40

0

Может быть также проблема прав, возможно, потребуется установить файл для исполнения. См. Команду chmod.

0

Вам необходимо предоставить командной строке полный путь к файлу, чтобы он точно знал, где он находится. Вы можете сделать это, используя префикс ., который является сокращением для «пути к текущему каталогу». Поэтому, если вы находитесь в том же каталоге, что и файл d, вы должны быть в состоянии типа:

./d

И это должно запустить программу.

0

Мне не нравится решение, которое я предложу сейчас, но я даю его некоторым друзьям, которые используются в командной строке AIX или Windows (где вам не нужно использовать ./) и изменены на некоторые Linux flavor:
- Добавьте «./» к переменной среды $ PATH (я бы положил ее в конце, но вам решать ее приоритет). Затем вы сможете просто использовать «d» в любое время.

Смежные вопросы