【发布时间】:2021-05-19 12:31:44
【问题描述】:
我正在尝试编写一个包含一些 bash 命令的 makefile,以便从文件夹中收集 cpp 文件的名称。
SRC_FILES=""
CC = g++
CFLAGS = -g
gather-files:
for var in $$(cd ./src && (ls -all *.cpp | awk '{print $$9}')); \
do \
SRC_FILES+="./src/"+"$(var) "; \
done; \
game: gather-files
$(CC) -c $(CFLAGS) $(SRC_FILES)
当我运行 make game 命令时,SRC_FILES 和 var 变量似乎没有更新。
我错过了什么?
忽略比较不完整的g++命令,我只想知道如何让SRC_FILES变量包含src文件夹下所有cpp文件的名字。
这是make game的输出:
g++ -c -g ""
clang: error: no input files
稍后编辑: 建议的解决方案:
SRC_FILES := $(wildcard src/*.cpp)
CC = g++
CFLAGS = -g
game: $(SRC_FILES)
$(CC) -c $(CFLAGS) $(SRC_FILES)
【问题讨论】:
-
请不要张贴文字图片。发布文本。
-
相应地编辑了问题,现在可以复制和测试代码
-
使用
make故意编译所有文件似乎与首先使用make的一点相反。 -
Makefile 仍处于创建初期,问题仅在于我在其中编写的 shell 代码。我还是一个初学者,我不确定我明白你的意思。使用 make 的典型场景是什么?