Ubuntu的makefile
时间: 2024-12-26 14:26:01 浏览: 14
### 如何在Ubuntu上编写和使用Makefile
#### 安装必要的工具
为了能够在Ubuntu上顺利使用`gcc`以及创建并执行`Makefile`,需要先确保已经安装了GNU编译器集合(GCC)。可以通过命令行输入如下命令来完成安装[^1]:
```bash
sudo apt-get update && sudo apt-get install build-essential
```
#### 创建项目结构
假设要建立一个新的C语言项目,在终端中进入目标目录后,可以按照下面的方式构建基本框架:
- `src/`: 存放所有的源代码文件。
- `include/`: 放置头文件。
- `bin/`: 编译后的可执行文件位置。
#### 编写简单的C程序
在一个名为`hello.c`的文件里写下一段打印“Hello, world!”的信息作为例子[^3]:
```c
// src/hello.c
#include <stdio.h>
int main() {
printf("Hello, world!\n");
return 0;
}
```
#### 构建Makefile
接下来在同一级目录下新建一个叫做`Makefile`的纯文本文件。这里给出一个基础版本的内容模板:
```makefile
# Makefile
CC=gcc # 使用 GCC 进行编译
CFLAGS=-Wall # 开启警告选项
SRCDIR=src # 源码路径
BINDIR=bin # 输出二进制文件夹
TARGET=$(BINDIR)/hello_world
all: $(TARGET)
$(TARGET): $(wildcard $(SRCDIR)/*.c)
@mkdir -p $(BINDIR)
$(CC) $^ -o $@
clean:
rm -rf $(BINDIR)/*
```
此配置指定了编译过程中使用的参数、源文件的位置以及其他一些设置。特别注意的是,每一条规则前都有一个标签定义最终想要得到的目标;而冒号后面则是依赖项列表——即哪些文件发生变化时应该重新生成该目标。最后部分给出了清理旧版编译产物的方法。
#### 执行编译与运行
有了上述准备之后,只需简单地键入`make`就能自动调用`Makefile`中的默认任务(`all`)来进行整个项目的编译工作。如果一切正常,则会在指定的输出目录找到新产生的可执行文件。测试其功能只需要继续敲击以下命令即可[^4]:
```bash
./bin/hello_world
```
这将会显示预期的结果:“Hello, world!”
阅读全文