makefile---多个源文件,多个可执行文件(C/C++)

时间:2022-10-05 12:43:43

makefile

作用:将多个源文件通过一个makefile文件进行编译生成多个可执行文件。

环境:Vmware Workstation;CentOS-6.4-x86_64

图解说明:

makefile---多个源文件,多个可执行文件(C/C++)

makefile---多个源文件,多个可执行文件(C/C++)

1、创建并编辑文件main1.c:

#include <stdio.h>

int main()
{
printf("main1\n");
return 0;
}

2、创建并编辑文件main2.c:

#include <stdio.h>

int main()
{
printf("main2\n");
return 0;
}

3、创建并编辑文件makefile:

.SUFFIXES:.c .o

CC=gcc

SRCS1=main1.c
OBJS1=$(SRCS1:.c=.o)
EXEC1=main1

SRCS2=main2.c
OBJS2=$(SRCS2:.c=.o)
EXEC2=main2

start: $(OBJS1) $(OBJS2)
$(CC) -o $(EXEC1) $(OBJS1)
$(CC) -o $(EXEC2) $(OBJS2)
@echo "-----------------------------OK-----------------------"

.c.o:
$(CC) -Wall -g -o $@ -c $<

clean:
rm -rf $(EXEC1) $(OBJS1)
rm -rf $(EXEC2) $(OBJS2)

4、编译源文件并执行:

[negivup@negivup mycode]$ make
gcc -Wall -g -o main1.o -c main1.c
gcc -Wall -g -o main2.o -c main2.c
gcc -o main1 main1.o
gcc -o main2 main2.o
-----------------------------OK-----------------------
[negivup@negivup mycode]$ ls
main1 main1.c main1.o main2 main2.c main2.o makefile
[negivup@negivup mycode]$ main1
main1
[negivup@negivup mycode]$ main2
main2

说明:

      1、上面的文件必须在同一个文件夹中。

      2、把.c改成.cpp,把gcc改成g++,就可以编译C++文件。


PS:根据传智播客视频学习整理得出。