---- 整理自狄泰软件唐佐林老师课程
文章目录
- 1. 第三方库的使用支持
- 1.1 问题
- 1.2 经验假设
- 1.3 第三方库在项目中的位置
- 2. 第三方库的编译阶段支持
- 3. 第三方库的链接阶段支持
- 4. 实验
1. 第三方库的使用支持
1.1 问题
当需要使用第三方库文件时,编译环境中的 makefile 该如何修改?
1.2 经验假设
- 第三方库通过函数调用的方式提供库中的功能
- 库文件发布时都附带了声明库函数原型的头文件
- 编译阶段使用头文件,链接阶段使用库文件
1.3 第三方库在项目中的位置
2. 第三方库的编译阶段支持
- 定义变量 DIR_LIBS_INC 用于指示头文件的存储位置
DIR_LIBS_INC := $(DIR_PROJECT)/libs/inc
- 使用 DIR_LIBS_INC 提示 make 头文件的存储位置
vpath %$(TYPE_INC) $(DIR_LIBS_INC )
- 使用 DIR_LIBS_INC 提示编译器头文件的存储位置
CFLAGS += -I$(DIR_LIBS_INC)
- 注意事项:
必须考虑拷贝后得到库文件和原始库文件的新旧关系
3. 第三方库的链接阶段支持
- 定义变量 EXTERNAL_LIB 用于保存第三方库列表
- 目标 link 需要依赖于第三方库
注意:第三方库必须最后一个依赖,这是为了处理一种极端的情况:我们的一个子模块和库文件的名字相同。
在这种情况下,优先使用自己的模块而不是第三方库模块。
4. 实验
24 - 第三方库的使用支持