Makefile: 添加前缀到无

问题描述 投票:0回答:1

在Bash中,brace扩展就可以了。

$ echo client_win{,_throttle,_freq}.exe
client_win.exe client_win_throttle.exe client_win_freq.exe

在Makefile中:

$(addsuffix .exe,client_win $(addprefix client_win, _throttle _freq )):client_win.c def.h
client_win.exe:
    $(CC_W)                -o $@ $< -lws2_32
client_win_throttle.exe:
    $(CC_W_REL) -DTHROTTLE -o $@ $< -lws2_32
client_win_freq.exe:
    $(CC_W_REL) -DFREQ     -o $@ $< -lws2_32

能否在Makefile中 client_win 融入 $(addprefix client_win,...)?

类似这样的?

$(addprefix client_win, NOTHING _throttle _freq )
bash makefile
1个回答
0
投票

这并不容易,因为make不像shell,没有 "现有但长度为零的字符串 "的概念。 Make会展开一些东西,然后查看生成的字符串,如果它不包含任何字符,就好像它根本不存在一样。

你可以做这样的事情。

$(patsubst %,client_%.exe, win win_throttle win_freq)

去掉 "空 "的选项,在里面添加更多的字符。

或者你可以直接把 "空 "的写出来。

client-win.exe $(patsubst %,client_win_%.exe, throttle freq)
© www.soinside.com 2019 - 2024. All rights reserved.