有项目文件组织如下 EXPER: lib src EXPER/lib: EXPER/src: calculator.c greeter.c main.c userheader.h [1] 编写makefile文件用于编辑、执行并安装该项目程序。要求如下: A. 使用伪目标build,将geeter.c和calculator.c目标文件添加到动态链接库libuser.so B. 使用伪目标install,将libuser.so复制到项目子目录lib C. 使用动态链接库libuser.so和主函数main.c目标文件创建项目可执行文件calc [2] 给出使用make命令编译项目的过程。
时间: 2024-02-12 21:04:42 浏览: 153
信息安全_数据安全_Lesson_Learned:What_I_Have_Exper.pdf
好的,下面是对应的 Makefile 文件:
```
CC = gcc
CFLAGS = -Wall -Werror
TARGET = calc
LIBRARY = libuser.so
SRC_DIR = src
LIB_DIR = lib
EXPER_LIB_DIR = EXPER/lib
EXPER_SRC_DIR = EXPER/src
SRC_FILES = $(wildcard $(SRC_DIR)/*.c)
OBJ_FILES = $(patsubst $(SRC_DIR)/%.c, $(SRC_DIR)/%.o, $(SRC_FILES))
all: build $(TARGET)
$(TARGET): $(OBJ_FILES) $(EXPER_SRC_DIR)/main.c
$(CC) $(CFLAGS) -o $@ $^ -L$(LIB_DIR) -luser
$(SRC_DIR)/%.o: $(SRC_DIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
build:
$(CC) $(CFLAGS) -shared -fPIC -o $(LIBRARY) $(EXPER_SRC_DIR)/calculator.c $(EXPER_SRC_DIR)/greeter.c
mv $(LIBRARY) $(LIB_DIR)
install:
cp $(LIB_DIR)/$(LIBRARY) $(EXPER_LIB_DIR)
clean:
rm -f $(SRC_DIR)/*.o $(TARGET) $(LIB_DIR)/$(LIBRARY)
.PHONY: all build clean install
```
关于使用 Make 命令编译项目的过程,可以按照以下步骤进行:
1. 打开终端,进入项目目录
2. 输入 make 命令,执行 Makefile 文件
3. make build:将 geeter.c 和 calculator.c 目标文件添加到动态链接库 libuser.so
4. make install:将 libuser.so 复制到项目子目录 lib
5. make:使用动态链接库 libuser.so 和主函数 main.c 目标文件创建项目可执行文件 calc
执行完以上步骤后,项目就会被成功编译并执行。
阅读全文