гну делает: Как к concat две строки

Учитывая строку:

program_OBJS := ${program_SRCS:.cpp=.o}

Я хотел бы добавить .o к каждому имени файла вместо замены .cpp с .o.

Как я делаю это?

6
задан Robert S. Barnes 21 June 2010 в 09:29
поделиться

4 ответа

Для просто добавьте что-нибудь в список разделенных пробелами элементов, которые вы можете используйте:

program_OBJS := $(foreach program,$(program_SRCS),$(program).o)

Чтобы использовать метод подстановки (как вы показываете в своем вопросе):

program_OBJS := $(program_SRCS:.cpp=.cpp.o)

, но для этого список должен содержать .cpp достаточно, иначе подстановки не произойдут.

6
ответ дан 8 December 2019 в 03:38
поделиться

Просто предположите program_OBJS: = $ {program_SRCS: .cpp = .cpp.o}

1
ответ дан 8 December 2019 в 03:38
поделиться

GNU make имеет addsuffix функцию

9
ответ дан 8 December 2019 в 03:38
поделиться

Более короткий вариант с заменой шаблона: program_OBJS: = $ {program_SRCS:% =%. O}

6
ответ дан 8 December 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: