我正在尝试编写一个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正确。
答案 0 :(得分:0)
使用PATH变量肯定会出现问题,请尝试在命令提示符的外部打印PATH,并在GNU make的内部工作,这会有所不同。
一个选项,在执行此命令之前,您需要设计一些机制来更新make内的PATH。
或使用命令[可执行文件]的绝对路径。