Windows下适配GNU Make的NASM x86 Makefile配置(已解决路径问题)
Windows下GNU Make适配Linux风格Makefile的解决方案
你确实需要修改原Makefile来适配Windows环境,核心原因是原文件依赖Linux专属命令,且Windows与Linux的命令执行逻辑存在差异。以下是具体修改方案和注意事项:
1. 替换Linux专属命令
原Makefile使用的cp(复制文件)和truncate(调整文件大小)都是Linux原生命令,Windows没有对应工具,需要替换:
cp替换为Windows原生的copy命令truncate用PowerShell命令替代,实现1440KB(1474560字节)的软盘镜像大小设置
2. 修改后的完整Makefile
ASM=nasm SRC_DIR=src BUILD_DIR=build $(BUILD_DIR)/main_floppy.img: $(BUILD_DIR)/main.bin copy $(BUILD_DIR)/main.bin $(BUILD_DIR)/main_floppy.img powershell -Command "(Get-Item $(BUILD_DIR)/main_floppy.img).Length = 1474560" $(BUILD_DIR)/main.bin: $(SRC_DIR)/main.asm $(ASM) $(SRC_DIR)/main.asm -f bin -o $(BUILD_DIR)/main.bin
关键注意事项
- 检查文件存在性:你最初的报错提示找不到
src/main.asm,请确认src目录下确实存在该文件(你的目录列表仅显示了src目录,未列出内部文件) - 环境变量配置:确保
nasm已添加到Windows系统环境变量中,否则需在ASM变量中指定完整路径(例如ASM=C:\Program Files\nasm\nasm.exe) - 缩进要求:Makefile中命令行必须用Tab键缩进,不能使用空格,这是Makefile的硬性语法规则
内容的提问来源于stack exchange,提问作者Ls16
相关产品推荐
相关产品推荐

