Моя ОС - Fedora Linux 14.
Я пишу программу с Code :: Blocks IDE, и она компилирует мою программу с GCC.
Моя программа вывода есть test
. Когда я запускаю свое приложение в Code :: Blocks, оно запускается нормально. Но когда я дважды щелкаю свою исполняемую программу, она не запускается. Когда я запускаю терминал (по пути моей двоичной программы) и test
печатаю, моя программа не запускается, но когда я печатаю ./test
в терминале, она запускается нормально. Почему я должен печатать, ./
когда я хочу запустить приложение?
Ответы:
./
необходим, когда вашаPATH
переменная окружения не включает текущий каталог. Так что если у вас есть исполняемый файл в каком-то каталоге, который не находится на вашем пути, вам нужно./theexecutable
сообщить оболочке, что ваш исполняемый файл находится в текущем каталоге.источник
.
в пути , если/bin/
есть прежде.
вPATH
это не будет выполнятьсяtest
./bin/test
существует (см. справочную страницу). Избегайте называть свою тестовую программу «test», чтобы избежать путаницы..
в своем PATH.Просто потому, что текущий каталог
.
, как правило, не включен в переменную PATH.Если вы не знаете, что печатать
./
, вы можете добавить.
список разделенных двоеточиями папок, содержащихся в PATH, однако это не рекомендуется, потому что было бы легко замаскировать системные команды, не осознавая этого.источник
.
в конце $ PATH. Тем не менее, не рекомендуется./bin/test/
существует и будет выполняться вместо,./test
так как/bin/
будет раньше, чем текущий. Я не назвал бы мою тестовую программу test (обычная утилита unix)Когда вы просто набираете имя программы, * nix проверит все ваши местоположения PATH на наличие этого имени. Если он не найдет его, он не запустится. Поэтому вы должны ввести «./», чтобы указать текущий каталог.
источник
В дополнение к тому, что говорят другие ответы:
Когда вы печатаете
test
, вы, вероятно, вызываете/bin/test
;man test
для деталей.Когда вы дважды щелкаете по исполняемому файлу (из nautilus или чего-то подобного, да?), Он, вероятно, запускается, но без терминала вы не видите вывод.
источник