2015-01-28 3 views
-1

makefile에서 액세스하려고하면 일부 환경 변수가 표시되지 않습니다. 내 응용 프로그램은 값 "DELLMACHINE"을 가진 환경 변수 MACHTYPE을 작성합니다. make 파일에서 echo 명령을 사용하여이 값을 인쇄하려고합니다. 코드는 다음과 같습니다makefile에서 환경 변수 값을 읽습니다.

@echo $(MACHTYPE) 

빈 문자열이 표시됩니다.

흥미롭게도 PATH와 같은 다른 환경 변수는 제대로 작동하지만 MACHTYPE은 빈 문자열로 표시됩니다. 왜 이런 일이 일어나는 지 아는 사람이 있습니까?

+0

팁 :이 경우 필자는 항상'--warn' make 매개 변수 ('--warn-undefined-variables'의 줄임말)를 사용합니다. – bobbogo

답변

2

쉘에서 변수를 내 보내지 않았기 때문입니다. 일반적인 쉘 변수는 해당 쉘에만 적용되며 쉘이 시작하는 모든 프로그램 (make와 같은)으로 전달되지 않습니다.

변수를 환경에 추가하고 프로그램에 전달하려면이 변수에 export을 입력해야합니다. 쉘에서 이것을 실행하거나 쉘 초기화 파일에 추가 :

export MACHTYPE=DELLMACHINE 

그렇지 않으면 당신이 원한다면 당신은 두 단계를 수행 할 수 있습니다

다음
MACHTYPE=DELLMACHINE 

export MACHTYPE 

make 실행하고 볼 수 있습니다 설정.

-1

make은 cmd 줄에서 변수를 제공 할 수 있습니다.

메이크

all: 
    @echo $(MACHTYPE) 

그런 다음 make MACHTYPE=DELLMACHINE을 실행합니다.

관련 문제