GNU make: Jak CONCAT dva řetězce

hlasů
4

Vzhledem k tomu, čáru:

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

Chtěl bych připojit .oke každému souboru namísto nahrazení .cpps .o.

Jak to udělám?

Položena 21/06/2010 v 10:29
zdroj uživatelem
V jiných jazycích...                            


6 odpovědí

hlasů
9

GNU make má addsuffix funkci

Odpovězeno 21/06/2010 v 10:57
zdroj uživatelem

hlasů
5

Kratší alternativa, pomocí substituována stejným způsobem: program_OBJS := ${program_SRCS:%=%.o}

Odpovězeno 24/06/2010 v 21:01
zdroj uživatelem

hlasů
5

Chcete-li jen přidat něco na seznamu vesmírných oddělena položek, které můžete použít:

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

Chcete-li použít metodu substituční (jako ukážete ve své otázce):

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

ale, že seznam musí obsahovat cpp postačuje, nebo nedojde substituce.

Odpovězeno 21/06/2010 v 10:41
zdroj uživatelem

hlasů
3

Ještě jeden způsob, jak pracovat bez ohledu na rozšíření: ${program_SRCS:=.o}

Odpovězeno 19/06/2014 v 14:58
zdroj uživatelem

hlasů
1

A co tohle:

STRING1:="foo"
STRING2:="bar"

STRING1:=$(STRING1)$(STRING2)

Obviuosly, můžete výsledek uložit do nové proměnné.

Odpovězeno 04/12/2017 v 07:40
zdroj uživatelem

hlasů
1

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

Odpovězeno 21/06/2010 v 10:38
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more