Как использовать MAKEFILES
переменная среда? Я пишу в bash MAKEFILES=/home/toker/mymake
, но если я запускаю /home/toker/bundocode/gettingstart/testMF/Makefile
, то /home/toker/mymake
не выполняется. Когда я напечатаю $MAKEFILES
в bash, тогда отображается bash: /home/toker/mymake: Permission denied
.MAKEFILES переменная среда
ответ
Переменная MAKEFILES
содержит один или несколько файлов make-файлов, а не программу make. Из приведенных выше сообщений выглядит, что mymake
- это программа make, которую вы пытаетесь запустить. Оболочка решает, какие программы запускать (просматривая каталоги, перечисленные в переменной среды $PATH
), и оболочка не обращает особого внимания на переменную MAKEFILES
. Только один раз make работает, он смотрит на переменную MAKEFILES
, чтобы увидеть, какие другие make-файлы он может использовать для синтаксического анализа.
Что имеется в файле /usr/toker/mymake
? Что вы подразумеваете под запуском .../Makefile? Один обычно работает make, а не make-файл. Затем сделайте чтение в make-файле. Есть способы изменить make-файл, чтобы быть исполняемым, но я не думаю, что это то, что вы ищете здесь.
ETA:
Если файл /usr/toker/mymake
фактически Makefile (BTW, конвенция обычно использует .mk
расширения для обозначения мейкфайлов хотя нет на самом деле официального расширения), то вы можете сделать это:
$ cat /usr/toker/mymake
$(info loaded /usr/toker/mymake)
foo: ; @echo building [email protected]
$ export MAKEFILES=/usr/toker/mymake
$ cat Makefile
bar: foo ; @echo building [email protected]
$ make
loaded /usr/toker/mymake
building foo
building bar
Если вы можете показать пример того, что вы сделали (покажите make-файл и команды, которые вы набрали, и полученные результаты), и объясните, что вы не понимаете в этом, тогда мы можем видеть гораздо точнее то, что происходит, чем вы пытаясь описать это словами).
_Что находится в файле/usr/toker/mymake? _ Это makefile, а не программа. –
_Что вы имеете в виду под управлением .../Makefile? _ Я имею в виду, что я выполняю команду 'make'. –
Как использовать переменную 'MAKEFILES'? Где я ошибаюсь? –
- 1. апач среда RequestHeader переменная
- 2. переменная среда возвращает NIL
- 3. Что касается VB6 - переменная среда
- 4. понимание Makefiles
- 5. Erlang - Makefiles
- 6. makefiles CFLAGS
- 7. Среда Переменная для внешних накопителей/съемных дисков?
- 8. Centos: среда TERM переменная не установлена
- 9. Proxy Auto Config - Javascript Среда Windows Переменная
- 10. Инъекционная среда Переменная в Groovy/Spring
- 11. Отображаемая среда Переменная в подсказке BASH
- 12. PowerShell: Получить 'tmp' среда переменная необработанное значение
- 13. переменная Окружающая среда для PERL CGI скриптов
- 14. Среда Переменная слишком велика на Windows 10
- 15. MakeFiles и зависимостей
- 16. Альтернативы Java Makefiles
- 17. Динамические цели в Makefiles
- 18. pretty print makefiles
- 19. Что Makefiles - сделать установку
- 20. Подкаталоги и Makefiles
- 21. C++, Makefiles, headerfiles
- 22. linux/unix и makefiles
- 23. Ubuntu Readline() и Makefiles
- 24. как Makefiles работают точно
- 25. Платформа условного Makefiles
- 26. Autodependency поколение Makefiles
- 27. переменных = @ значение @ в Makefiles
- 28. команды оболочки в Makefiles
- 29. Подробности о Makefiles
- 30. Зависимости в Makefiles
Если '.../testMF/Makefile' является make-файлом, а'/usr/toker/mymake' также является make-файлом, то *, который вы пытаетесь использовать? * – Beta
@Beta Следующее письмо http: //www.gnu.org/software/make/manual/make.html#MAKEFILES-Variable сказал, что: Если определена переменная среды MAKEFILES, make считает ее значение как список имен (разделенных пробелами) дополнительных файлов makefile читать перед другими. Сначала я не могу установить значение переменной среды, которое разделяется пробелом. Во-вторых, я установил эту переменную в make-файл, который я хочу обработать до другого. Это '/ home/toker/mymake', но обработка не обрабатывается. –
Вы можете абсолютно установить переменную в значение, содержащее пробелы. Просто укажите это: 'export MAKEFILES ="/some/file/some/other/file "'. Что касается того, почему это не работает, я ожидаю, что вы забыли экспортировать переменную; это то, что вам нужно понять о оболочке, а не делать. Если вы запустите 'env | grep MAKEFILES' вы видите свой вывод? Вам следует. – MadScientist