makefile - make 不识别命令
问题描述
我正在尝试编写一个 makefile 来正确地自动编译我当前的项目。
$(kernel): $(assembly_object_files) $(linker_script)
@echo $(PWD)
@echo $(PATH)
@x86_64-elf-ld -n -o $(kernel) -T $(linker_script) $(assembly_object_files)
这是失败的代码。使用它时唯一的错误信息是
make: x86_64-elf-ld: No such file or directory
我已经检查了该x86_64-elf-ld
命令是否存在于路径中,并且我确实可以在 make 文件之外使用这些确切的参数来执行它。我已经确保所有其他变量等都存在,这是缺少的命令。如何make
使它也包含在它的路径中?
编辑:
因此,编辑后的代码(带echo
s)的输出是:
/Repository of Things/Coding/Full Code/Etc/Neutron-OS
/Library/Frameworks/Python.framework/Versions/3.6/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/cross/bin:/opt/local/bin:~/opt/cross/bin:/usr/local/MacGPG2/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/opt/local/sbin
make: x86_64-elf-ld: No such file or directory
make: *** [build/kernel-x86_64.bin] Error 1
工作目录与预期一致,PATH 正确。
解决方案
PATH 变量肯定会出现问题,尝试在命令提示符之外打印 PATH,它的工作位置以及在 GNU make 内部,它会有所不同。
一种选择是,在执行此命令之前,您需要设计一些机制来更新 make 内部的 PATH。
或者使用命令[可执行文件]的绝对路径。
推荐阅读
- php - 无法创建 Symfony 4 项目
- ruby - Rubocop 使用错误版本的 Ruby - 失败
- c++ - 我可以/应该在#ifndef 之后输入我想要的任何内容吗?
- javascript - Bootstrap jquery hidden and shown.bs.modal 模态属性不起作用
- python - 一组文本文件之间的文档相似性
- typescript - 使用 Typescript 从对象中获取值
- vb.net - 使用 backgroundworker 时强制转换无效
- c# - C# - 从线程更新 windows 窗体元素
- javascript - 如何检查javascript数组是否包含具有特定值的属性,如果是则返回true
- java - 由已分配的 ByteString 支持的高效 okio 源?