gpt4 book ai didi

linux - 如何为汇编语言程序制作 Makefile?

转载 作者:IT王子 更新时间:2023-10-29 00:53:33 27 4
gpt4 key购买 nike

我遇到过用我编写的汇编语言为程序构建 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)。

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

如果您使用目标文件,您通常会像这样启动 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

关于linux - 如何为汇编语言程序制作 Makefile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18652832/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com