如何写Makefile编译汇编和C文件

如何写Makefile编译汇编和C文件,第1张

有些场景下编译的程数蠢序是不能依赖OS和标准的C库的,并且需要C和昌蚂汇编混合编译,如bootloader程序,就需耐毕埋要制定参数-nostdlib,这样的Makefile如下所示:all:arm-linux-gcc -O2 -Wall -nostdlib -march=armv4 -Wl,-T,ipl.lds uart.c ipl.c nfc.c nand.c sha1.c arm.s -o ipl.exe

这个提示是说你当前项目里有多个文件里都皮烂有叫main的函数,这样会导致系统不清楚从哪个main执行,建议你可以把其它文局知件里的main随便改下下名字比如叫main1什么的,只把你当前要运行的文件里的主函数改为main就行了。

或者建议如果只有一般的测试代码桐握消只有一个文件的那种,新建的时候就不要建项目,直接建文件就可以了。

以下是一个最简单的多文件+makefile的形式姿肆橡

编译采用gcc 你可以修改成你的编雹液译器

三个文件 main.c func.c makefile

main.c

1

2

3

4

5

6

7

#include <stdio.h>迹旁

extern void func()//这个应该放在头文件中的 比如func.h 简单起见 就直接声明了

int main()

{

func()

}

func.c

1

2

3

4

5

6

#include <stdio.h>

void func()

{

printf("hello world\n")

}

makefile

1

2

3

4

5

6

7

8

.PHONY: all main.o func.o

all: main.o func.o

@gcc main.o func.o -o out

main.o: main.c

@gcc -c main.c -o main.o

func.o: func.c

@gcc -c func.c -o func.o


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12310764.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存