如何为汇编语言程序制作Makefile? [英] How to make a Makefile for a program for assembly Language?

查看:19
本文介绍了如何为汇编语言程序制作Makefile?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到了这样一个任务,即为我用汇编语言制作的程序构建一个Makefile(没有什么新奇的东西,比如Hello World)。该程序是在Linux 32位,我使用的是NASM汇编语言。到目前为止,我只能找到C程序的Makefile,我知道它们之间没有太大区别,但我不熟悉这个东西。我所拥有的是:

Program: main.o
    gcc -o Program main.o
main.o: main.asm
    nasm -f elf -g -F stabs main.asm

我不知道这是否正确,如果正确,也不知道它是如何工作的。我不能尝试代码,因为这台计算机没有Linux。我真的很想知道代码中发生了什么。

推荐答案

首先阅读an introduction to Makefile

您的Makefile由make程序在调用时读取。它执行给定规则(例如make clean)或执行默认规则(通常为all)。

每个规则都有要执行的名称、可选依赖项和外壳代码。

如果您使用对象文件,通常会这样启动您的Makefile:

all: main.o
    gcc -o PROGRAM_NAME main.o

此处的依赖项是main.o,因此必须在执行代码之前解析它。首先搜索名为main.o的文件并使用它。如果该文件不存在,它将搜索允许创建该文件的规则。

您拥有以下内容:

main.o: main.asm
    nasm -f elf -g -F stabs main.asm
在这里,制定main.o的规则取决于main.asm,它是您的源文件,所以我认为它已经存在。然后执行规则下的代码,并且必须使文件与规则名称匹配。 如果nasm调用正确,则创建文件并执行all(或您命名的Program)的代码。

因此您的Makefile应该工作,您只需测试它以确保:)它与调用:

几乎没有什么相同之处
nasm -f elf -g -F stabs main.asm && gcc -o Program main.o
顺便提一句,只要安装了所有工具,您仍然可以在Windows上测试它。cygwin项目提供了一个可以安装makegccnasm的环境。

这篇关于如何为汇编语言程序制作Makefile?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆