在Linux环境下,编译多个文件通常涉及以下几个基础概念:
.c
(C语言)、.cpp
(C++)或.java
(Java)等扩展名结尾。.o
扩展名结尾。假设我们有两个C语言源文件main.c
和utils.c
,以及一个头文件utils.h
。
project/
├── main.c
├── utils.c
└── utils.h
#include "utils.h"
#include <stdio.h>
int main() {
printf("Sum of 3 and 4 is %d\n", add(3, 4));
return 0;
}
#include "utils.h"
int add(int a, int b) {
return a + b;
}
#ifndef UTILS_H
#define UTILS_H
int add(int a, int b);
#endif
CC = gcc
CFLAGS = -Wall -std=c99
OBJS = main.o utils.o
all: program
program: $(OBJS)
$(CC) $(CFLAGS) -o program $(OBJS)
main.o: main.c utils.h
$(CC) $(CFLAGS) -c main.c
utils.o: utils.c utils.h
$(CC) $(CFLAGS) -c utils.c
clean:
rm -f $(OBJS) program
program
。-I
选项指定头文件目录。通过以上步骤和示例代码,可以有效地管理和编译多个文件,提高开发效率。
领取专属 10元无门槛券
手把手带您无忧上云