打开文件c语言分别编写 学号.c和name.c的makefile文件,再编写脚本文件实现两个工程文件的自动编译和执 行。要求在新终端中前台执行学号程序,在后台执行name程序。
时间: 2024-09-27 15:10:56 浏览: 38
C语言多文件编译:深度解析与实践指南
在C语言项目中,要实现两个独立的源文件(如`学号.c`和`name.c`)的自动编译和执行,并在新终端中分别前台执行学号程序和后台执行name程序,你需要创建两个`.c`源文件、对应的`.o`目标文件以及Makefile配置文件。
首先,创建两个源文件,例如:
```c
// 学号.c
#include <stdio.h>
int main() {
printf("请输入学号:\n");
int id;
scanf("%d", &id);
printf("欢迎学号%d的学生!\n", id);
return 0;
}
// name.c
#include <stdio.h>
void printName() {
char name[50];
printf("请输入姓名:\n");
fgets(name, sizeof(name), stdin);
printf("你好,%s!\n", name);
}
```
接下来,分别为每个文件创建一个`.o`文件:
```sh
gcc -c 学号.c
gcc -c name.c
```
然后,在项目的根目录下编写`Makefile`:
```makefile
CC = gcc
OBJECTS =学号.o name.o
all: $(OBJECTS)
$(CC) $(OBJECTS) -o program
学号.o: 学号.c
gcc -c 学号.c
name.o: name.c
gcc -c name.c
clean:
rm -f *.o program
```
现在你可以运行`make all`编译两个程序,生成`program`可执行文件。
对于在新终端中前台执行学号程序和后台执行name程序,可以使用下面的命令:
1. 前台执行学号程序:
```bash
./program &
```
`&`会让程序在后台运行。
2. 后台执行name程序:
```bash
nohup ./program name & disown
```
`nohup`让进程继续在后台运行,不受shell关闭的影响。`disown`进一步确认将进程脱离当前会话。
阅读全文