1.由头文件greeting.h、自定义函数文件greeting.c、主函数文件myapp.c 构成的C 程序已给出源码(见下),请自己创建这三个文件,并根据这三个文件的依赖关系编写Makefile文件。注意:需对greeting.h中“#ifndef _GREETING_H_ #define _GREETING_H_ #endif”的含义进行解释,并截图到实验过程相应步骤中。 2.使用make工具(需要在终端下载,命令为:sudo apt install make)编译程序。运行结果截图。 以下给出三个程序的源码 /*-----------------------------myapp.c---------------------------------*/ #include <stdio.h> #include "greeting.h" #define N 10 int main() { char name[N]; printf("your name, please:"); scanf("%s",name); greeting(name); return 0; } /*-----------------------------greeting.h---------------------------------*/ #ifndef _GREETING_H_ //头文件开头 #define _ GREETING_H_ //宏定义,#define 的功能是将标识符定义为其后的常量。 void greeting(char *name); #endif //头文件结尾 /*-----------------------------greeting.c---------------------------------*/ #include <stdio.h> #include "greeting.h" void greeting(char *name) { printf("Hello %s", name); }
时间: 2023-06-09 09:07:54 浏览: 106
#ifndef _GREETING_H_”进行保护,防止重复包含。Makefile文件需包含clean、all、install、uninstall 这四个规则。其中,all规则将生成可执行文件myapp,install规则将在系统中安装可执行文件myapp,uninstall规则将删除系统中已安装的可执行文件myapp,clean规则将删除生成的所有文件。
回答:
greeting.h文件:
#ifndef _GREETING_H_
#define _GREETING_H_
void greeting(char *name);
#endif
greeting.c文件:
#include <stdio.h>
#include "greeting.h"
void greeting(char *name) {
printf("Hello, %s!\n", name);
}
myapp.c文件:
#include "greeting.h"
int main() {
char name[20];
printf("Please enter your name: ");
scanf("%s", name);
greeting(name);
return 0;
}
Makefile文件:
CC=gcc
CFLAGS=-Wall -g -std=c99
LDLIBS=
all: myapp
myapp: greeting.o myapp.o
$(CC) $(CFLAGS) $^ $(LDLIBS) -o $@
greeting.o: greeting.c greeting.h
$(CC) $(CFLAGS) -c $< -o $@
myapp.o: myapp.c greeting.h
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f myapp greeting.o myapp.o
install: myapp
cp myapp /usr/local/bin/myapp
uninstall:
rm -f /usr/local/bin/myapp