gpt4 book ai didi

c - makefile 特定于目标的文件

转载 作者:太空宇宙 更新时间:2023-11-04 00:03:34 24 4
gpt4 key购买 nike

我正在尝试创建一个 makefile 文件来编译两组不同的文件。这可能吗?

到目前为止我尝试的是:

target1: OBJ = foo1.o foo2.o  
target1: application

target2: OBJ = foo3.o foo4.o
target2: application

application: $(OBJ)
$(LD) $(OBJ)

LD 是用正确的参数调用的,但 make 从未实际检查依赖关系,因此从未执行将 .c 文件编译为 .o 的隐式规则,因此链接器失败:

ld: cannot find foo1.o: No such file or directory
ld: cannot find foo2.o: No such file or directory

正确的做法是什么?

最佳答案

例如,您可以这样做(考虑到您不会一次调用多个目标的 make):

OBJ := foo1.o foo2.o

ifeq "$(MAKECMDGOALS)" "target2"
OBJ := foo3.o foo4.o
endif

target1 target2: application

application: $(OBJ)
$(LD) $^

关于c - makefile 特定于目标的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33135067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com