Почему некоторые команды выполняются правильно только тогда, когда вызываемый файл находится внутри рабочего каталога

Я не могу успешно создать файл, когда выполняю следующую команду

сделать /home/me/Desktop/folderWithMakefile 

Однако исполняемый файл создается, когда я делаю следующее

cd /home/me/Desktop/folderWithMakefile /home/me/Desktop/folderWithMakefile делать 
2
09.09.2011, 10:27
4 ответа

Команда makeпо умолчанию ищет Makefileв текущем каталоге. Чтобы первая указанная вами команда работала, вам потребуется Makefileв текущем каталоге, содержащем цель /home/me/Desktop/folderWithMakefile.

Если вы хотите запустить makeв контексте другого каталога (и, следовательно, выбрать другой Makefile), вы можете использовать опцию -C. Например :

make -C /home/me/Desktop/folderWithMakefile [target]
3
12.02.2019, 01:09

Makefile содержит относительные пути, которые относятся к вашему текущему каталогу. Когда вы находитесь не в каталоге, где находятся кодовые файлы, команды не найдут нужные файлы...

2
12.02.2019, 01:09
  • 1
    Вы можете использовать ''--directory='', чтобы направить команду make в нужный каталог : `make --directory=/home/me/Desktop/folderWithMakefile ` –  falstaff 09.09.2011, 05:55

Аргументом make является не каталог, который нужно использовать, а цель make -, которая должна быть собрана.

0
12.02.2019, 01:09

использовать make -C /home/me/Desktop/folderWithMakefile

0
12.02.2019, 01:09

Теги

Похожие вопросы