나는 실행될 때 다음을 수행 메이크 파일을 작성하려고 해요 : 2775
실종 피연산자 : 메이크 파일을 실행하면chmod 명령이 DIR의 내용을 디렉토리로 인식하지 않는 이유는 무엇입니까?
CMVC_VIEW = ../../..
TB_DIR = $(CMVC_VIEW)/tarball_images
SMAC_TOOLS = $(TB_DIR)/smac_tools
SMAC_BIN = $(SMAC_TOOLS)/bin
DIR_LIST = $(TB_DIR) \
$(SMAC_TOOLS) \
$(SMAC_BIN)
install:
rm -f *.o
for DIR in $(DIR_LIST); do \
echo $${DIR}; \
chmod 2775 $${DIR}; \
done
그러나, 나는 그 chmod를 말하는 오류가 발생합니다. $${DIR}
에 액세스 권한이 변경 될 필요가있는 디렉토리에 해당하는 경로가 포함되어야하는 이유를 이해할 수 없습니다.
이것은 $${DIR}
을 고정 디렉토리 경로로 바꿀 때 작동하는 것 같습니다.
이 메이크 파일의 목적 상, DIR_LIST
매크로가 공백으로 구분 된 디렉토리 목록에 할당된다고 가정하십시오.
'$ (DIR_LIST)'에는 무엇이 들어 있습니까? 'chmod' 문 바로 앞의'echo' 문은 무엇을 표시합니까? – larsks
이것은 공백으로 구분 된 디렉토리 목록 일뿐입니다. 예를 들면 다음과 같습니다./tmp/justin1/tmp/justin2/tmp/justin3 – Justin
그게 내 질문 이었어. 'DIR_LIST'를 설정하는 실제 줄을 보여줄 수 있습니까? 이 코드를 잘라내어 Makefile에서 그대로 붙여 넣었습니까? 이 코드는 샘플 Makefile에'DIR_LIST'를 설정 한 후 실행할 때 잘 동작하고 예상대로 작동합니다. – larsks