Makefile이 있습니다. makefile 어딘가에 변수가 정의되어 있습니다.
FOO=hello
FOO
나중에 내용에 일부 텍스트를 추가 해야 합니다 . 나는 이것을 시도했습니다 :
FOO=$(FOO)_world
내가 제안한 것은 echo $(FOO)
출력이 될 것입니다 hello_world
. 대신 오류가 발생합니다.
*** Recursive variable 'FOO' references itself (eventually). Stop.
연산자를 사용하면 +=
중간에 공백이 추가되므로 작동하지 않습니다.
답변1
:=
재귀 대신 필요합니다 =
.
FOO := hello
FOO := $(FOO)_world
$(info FOO=$(FOO))
안녕하세요 세계
답변2
나는 makefile을 말할 것입니다addsuffix
함수는 당신이 찾고 있는 것입니다. 예를 들면 다음과 같습니다.
FOO := hello
FOO := $(addsuffix _world,$(FOO))
그러나 @user218374도 옳습니다. 이 경우 그의 솔루션도 작동하지만 파일 이름 목록에서도 작동하는 내장 확장 기능을 살펴보는 것이 좋을 것이라고 확신합니다!