makefile - Makefile:变量不包含在其他 makefile 中
问题描述
我想使用 common.mk 文件来定义公共变量,并将该文件包含在其他 Makefile 中,但在第一个示例中我已经完成它不起作用所以我认为我误解了一些东西。
这是生成文件:
CC=gcc
CFLAGS=-g -Wall
LIB_FLAGS=-L/usr/local/lib/ -lcgreen
BUILDDIR=$(CURDIR)/build
SRC=$(wildcard *.c)
export BUILDDIR
export CFLAGS
export LIB_FLAGS
#include common.mk # HERE I INCLUDE THE common.mk where OBJ is defined
unittests: dir externals $(OBJ)
@echo "SRC: $(SRC)"
@echo "OBJ: $(OBJ)" # THIS PRINTS OBJ AS EMPTY <------------------------------
$(CC) $(BUILDDIR)/*.o $(LIB_FLAGS) -o $(BUILDDIR)/unittests
$(BUILDDIR)/unittests
externals:
@$(MAKE) -C lib1 -f lib1.mk
dir:
mkdir -p $(BUILDDIR)
这是 common.mk 文件:
OBJ=$(patsubst %.c, $(BUILDDIR)/%.o, $(notdir $(SRC)))
$(BUILDDIR)/%.o: %.c
@echo "File: "$<
$(CC) -c $(CFLAGS) $< -o $@
clean:
rm -f $(OBJ)
所以我期待主 Makefile 中的 OBJ 变量有一个目标文件列表,但它是空的,我不明白为什么。包含 common.mk 文件与将其内容复制到 Makefile 中不一样吗?
谢谢
解决方案
正如@melpomene 指出的那样,我将文件包含在C 中,因此将其注释掉!
很抱歉浪费你的时间。。
推荐阅读
- spring-kafka - 如何在错误处理程序中将弹簧卡夫卡偏移到下一个?
- python - 以 redis 作为代理和结果后端的 Airflow celery 执行器产生过多的 redis 连接
- python - 关于查找两个字典交集的最佳方法的建议
- css - 将纯 CSS 轮播保持在固定位置
- python - 从多个不同长度的列表中获取随机整数的更有效和更通用的方法
- php - 在数组自动生成的输出中添加自定义文本
- python - 在python3中获取Nonetype Attribute错误
- excel - 使用新的 Excel 动态数组公式的累积和公式
- excel - 我的 VBA Excel 代码上的运行时错误 1004 - 将数据从一个工作表传输到另一个工作表
- android - Firebase 数据库中的“.info/serverTimeOffset”不刷新