c - Makefile - 使用正则表达式导出
问题描述
我正在研究 C 项目 XYZ。该项目依赖于另一个 C 项目 ABC。因此,要为 XYZ 制作,我们必须先为 ABC 制作。为此,我首先将 ABC 作为子模块添加到 XYZ,如下所示
git submodule add git@github.com:username/ABC.git
git add .gitmodules
git add ABC
git push
因此,要构建我的 XYZ 项目,首先需要构建 ABC。所以我在 XYZ 项目中的 makefile 如下所示:
ifndef PRT
PRT=ABC
export PRT
endif
.PHONY: project_ project_clean project_check clean XYZ_package package check
project_ project_clean project_check:
@echo "(MAKE) -C src -s $(@:project_%=%)"
@$(MAKE) -C src -s $(@:project_%=%)
clean: project_clean
XYZ_package package:
./scripts/package.sh
check: project_check
这是在本地工作,但是当我尝试在 github 中构建它时,它失败了。因为在 github 中,文件夹是XYZ @ 324354
. 它显示如下错误:
(MAKE) -C src -s
make: *** ABC: No such file or directory. Stop.
make[1]: *** [all] Error 2
make: *** [project_] Error 2
如何PRT variable
设置正确的路径,以便它始终指向正确的文件夹。
解决方案
您在问什么并不是很清楚(如果您提供了一个显示真实目录名称等的特定示例,那会简单得多)
但我认为,根据您的评论,这样的事情可能会奏效:
ifndef PRT
PRT := $(wildcard sub-project*)
endif
export PRT
推荐阅读
- asp.net-core - OpenIddictHandler 在第一次之后不处理 HTTP 请求
- python - 如何从网站导入外部文本文件并使用其中的列表
- python - 想要保持进程直到 subprocess.popen 中的 git 命令完成执行
- plsql - 运行 pl/sql 程序以查找前 10 个素数之和时出错
- c# - PdfSharp 不会更改文件系统信息
- typescript - 离子未捕获(承诺):[对象:对象]
- python - 把一个字符串变成一个元组
- mysql - SQL 计算一个表中发生在另一个表的开始日期和结束日期之间的日期
- scala - Intellij 中忽略的 JVM -ea 参数
- ios - React Native - panResponder 动画在 iOS 上不起作用