C语言,Linux,静态库编写方法,makefile与shell脚本的关系。

静态库编写:

编写.o文件gcc -c(小写) seqlist.c(需要和头文件、main.c文件在同一文件目录下)

libs.a->去掉lib与.a剩下的为库的名称‘s’。

-ls是指库名为s。

-L库的路径。

makefile文件编写:

CFLAGS=-Wall -O2 -g  -I ./inc/ 
LDFLAGS=-L./lib/ -llist

APP=app
SRC=$(wildcard ./src/*.c)
OBJ=$(patsubst %.c, %.o, $(SRC))

CC=gcc
$(APP):$(OBJ)
	$(CC) -o $(APP) $^ $(LDFLAGS)
clean:
	rm -f $(OBJ) $(APP)

这个是编译后的文件,app文件为编译后的二进制文件。 

 

makefile与shell脚本关系

shell 脚本和 makefile 是两种完全不同的工具,但它们经常在 UNIX 和 Linux 系统中一起使用,尤其是在软件构建和自动化工具链中。让我们分别看看它们,然后探讨它们之间的关系。

1. Shell 脚本:
   - Shell 脚本是一种用于自动化操作的脚本语言,它可以在 Unix 或 Linux shell 中运行。
   - 它通常用于执行日常的文件和目录操作,处理文本,以及进行系统管理任务。
   - Shell 脚本可以直接在命令行上运行,或保存为.sh文件并以脚本方式执行。

2. Makefile:
   -makefile是 make 工具使用的文件,它描述了如何从源代码构建目标(通常是可执行程序或库)。
   - 它包含了一组规则,这些规则定义了目标文件、依赖项以及将依赖项转换为目标的指令。
   - 指令通常是 shell 命令,因此 makefile 会频繁地使用 shell 脚本。
   - `make` 工具会检查文件的时间戳来确定哪些文件需要更新,从而只构建那些实际需要更新的部分,而不是从头开始构建整个项目。

关系:
   - 在 makefile 中,你会经常看到 shell 命令。这是因为 make 使用 shell 命令来执行构建任务。
   - `make` 可以执行任何可在 shell 中运行的命令,包括调用 shell 脚本。
   - 通常,较小的任务(如编译单个文件)直接在 makefile 中使用 shell 命令完成,而更复杂的任务(如部署应用程序)可能会调用单独的 shell 脚本来完成。
   - 简而言之,makefile 通常调用 shell 命令(或其他工具,如编译器)来完成其工作。因此,shell 脚本和 makefile 经常在构建和部署过程中一起使用。

        在实际开发中,尤其是在大型项目中,使用 make 和 makefile 可以极大地简化构建过程,而 shell 脚本则为自动化提供了额外的灵活性和功能。

猜你喜欢

转载自blog.csdn.net/qq_52119661/article/details/132401289
今日推荐