다음과 같은 디렉토리 레이아웃이 있습니다.
/home/me/mydir
\- tiller -> ./cache/git-repo1/subdir1/tiller
\- makefiles -> ./cache/git-repo2/subdir2/makefiles
/home/me/mydir
이것을 입력하면 ls -l
예상대로 위와 같은 결과가 나타납니다.
그러나 으로 변경하여 /home/me/mydir/tiller
입력 하면 ls ../makefiles
오류가 발생합니다.ls: ../makefiles: No such file or directory
상대 경로를 사용하여 어떻게 /home/me/mydir/makefiles
액세스 할 수 있습니까 /home/me/mydir/tiller
? 아니면 절대 경로를 사용하는 것이 유일한 옵션입니까?
편집하다: 싸울 것 같아이것. 해결책이 있나요? 나는 정말 <cmd> ../makefiles
내부 에서 작업 해야 합니다 /home/me/mydir/tiller
.
답변1
include
실제로 Makefile에 포함하는 작업을 원했기 때문에 환경 변수에서 값을 가져오고 이를 의 절대 경로로 설정하도록 변경했습니다 /home/me/mydir
.
CACHE_ROOT?=..
include $(CACHE_ROOT)/makefiles/base.mk
읽고 나서이것은 훌륭한 답변입니다, 절대 경로가 유일한 해결책이라는 것을 깨달았습니다.