如何在Makefile中基于当前工作目录设置条件链接库选项?
自动设置Makefile的LDLIBSOPTIONS路径
可以通过两种方式实现自动判断当前工作目录并配置对应路径,无需手动注释/取消注释:
方案1:使用Makefile内置函数(推荐)
利用Makefile的findstring内置函数检测路径,无需额外调用shell工具,执行效率更高:
# 获取当前工作目录 CURDIR := $(shell pwd) # 根据目录匹配结果设置路径 ifeq ($(findstring /home/,$(CURDIR)),/home/) LDLIBSOPTIONS=-L "/home/OpenXLSX/linux/lib" else LDLIBSOPTIONS=-L "/office/OpenXLSX/linux/lib" endif
方案2:使用pwd + grep组合(贴合你的思路)
通过shell命令组合判断目录特征,完全匹配你提出的伪代码逻辑:
# 判断当前目录是否包含/home/,返回标记值 IS_HOME_DIR := $(shell pwd | grep -q "/home/" && echo "yes" || echo "no") # 根据标记值设置对应路径 ifeq ($(IS_HOME_DIR),yes) LDLIBSOPTIONS=-L "/home/OpenXLSX/linux/lib" else LDLIBSOPTIONS=-L "/office/OpenXLSX/linux/lib" endif
内容的提问来源于stack exchange,提问作者One_Cable5781
相关产品推荐
相关产品推荐

