Linux编写makefile文件怎么让一个C程序在前台执行,另一个在后台执行
时间: 2024-09-19 16:17:46 浏览: 32
Linux程序设计知识点整理.docx
在Linux中,Makefile是用来管理源代码构建过程的文本文件。如果你想让一个C程序在前台执行(即控制台显示并阻塞),而另一个在后台执行(继续运行而不阻塞终端),可以利用Unix/Linux的特性结合`&`运算符来实现。
首先,假设你有两个需要编译的目标,一个是`main.c`,另一个是`background_task.c`:
```makefile
# 假设编译器是gcc
all: foreground & background
foreground: main.o
gcc -o foreground main.o
background: background_task.o
gcc -o background background_task.o & # 使用&将命令放到后台运行
%.o: %.c
$(CC) -c $< -o $@
clean:
rm -f *.o foreground background
.PHONY: clean all
```
在这个例子中,`foreground`规则会正常在前台编译`main.c`生成`foreground`可执行文件,而`background`规则在编译`background_task.c`生成`background`的同时,因为末尾的`&`,使其作为一个后台进程运行。
当你运行`make all`时,`background`任务会在后台开始执行,而你可以继续看到前台的`foreground`任务的编译输出。当你想要结束所有任务时,只需运行`make clean`即可。
阅读全文