C 中的一个简单 makefile - 与 C 文件名称不同的目标文件
A simple makefile in C - Object file with different name from C file
我正在尝试为我的程序创建一个 makefile(一个非常简单的)。
我的文件是 lab.c
和 lab.h
。
我需要创建 lab.c
的目标文件并使用不同的名称 (matlib.o
),并在没有链接的情况下进行编译。
这是我的尝试:
matlib: matlib.o lab.o
gcc -c matlib.o
matlib.o: lab.c lab.h
gcc -c lab.c
但是,我遇到了这个错误:
No rule to make target 'matlib.o', needed by 'matlib'. Stop.
我做错了什么?
您应该告诉 gcc 使用 -o
标志以不同的名称输出目标文件。
正确的食谱是
matlib: matlib.o lab.o
gcc matlib.o -o matlib
matlib.o: lab.c lab.h
gcc -c lab.c -o matlib.o
我正在尝试为我的程序创建一个 makefile(一个非常简单的)。
我的文件是 lab.c
和 lab.h
。
我需要创建 lab.c
的目标文件并使用不同的名称 (matlib.o
),并在没有链接的情况下进行编译。
这是我的尝试:
matlib: matlib.o lab.o
gcc -c matlib.o
matlib.o: lab.c lab.h
gcc -c lab.c
但是,我遇到了这个错误:
No rule to make target 'matlib.o', needed by 'matlib'. Stop.
我做错了什么?
您应该告诉 gcc 使用 -o
标志以不同的名称输出目标文件。
正确的食谱是
matlib: matlib.o lab.o
gcc matlib.o -o matlib
matlib.o: lab.c lab.h
gcc -c lab.c -o matlib.o