我有一个源文件test.c
和它的头test.h
文件,一个文件main.c
和makefile
. 我想设置我的makefile,以便它(1)编译test.c
以构建可执行文件test.o
,并且(2)编译test.c
以打印汇编代码以test.s
使用-S
标志。
我尝试按照我认为正确的方式设置生成文件,但这当然不会实际运行最后test.s
一行。
FLAGS = -c -Wall
CC = gcc
ASM = -S
all : optimize
optimize: main.o test.o
$(CC) main.o test.o -o optimize
main.o: main.c test.h
$(CC) $(FLAGS) main.c
test.o: test.h test.c
$(CC) $(FLAGS) test.c
test.s: test.h test.c
$(CC) $(ASM) -Wall test.c
谁能告诉我我应该如何以不同的方式构建它来创建test.s和 test.o?
我尝试将optimize:
行和以下行更改为:
optimize: main.o test.o test.s
$(CC) main.o test.o test.s -o optimize
但链接器给出了错误multiple definition of 'test'
。