不能识别命令

时间:2018-12-31 10:04:04

标签: makefile

我正在尝试编写一个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的输出)为:

/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正确。

1 个答案:

答案 0 :(得分:0)

使用PATH变量肯定会出现问题,请尝试在命令提示符的外部打印PATH,并在GNU make的内部工作,这会有所不同。

一个选项,在执行此命令之前,您需要设计一些机制来更新make内的PATH。

或使用命令[可执行文件]的绝对路径。