getcwd()
을 사용하여 현재 작업 디렉토리를 얻는 빌드 시스템 도구가 있습니다. 그럴 때가 있습니다 만, 때로는 사람들이 경로에 공백이있어 빌드 시스템에서 지원하지 않는 경우가 있습니다.getcwd()와 getenv ("PWD")가 일치하지 않으면 어떻게해야합니까?
ln -s "Directory With Spaces" DirectoryWithoutSpaces
다음으로 기호 링크를 만들 수 있다고 생각할 것입니다. 그러나 불행히도 나를 위해 getcwd()
은 모든 심볼릭 링크를 해결합니다. 나는 getenv("PWD")
을 사용하려고 시도했지만, 동일한 경로를 가리키고 있지 않습니다. getcwd()
에서 돌아옵니다. 내가 환경 변수를 업데이 트하지 않는 것에 대한 make -C
비난, 나는 생각한다.
/Users/carl/Directory With Spaces/Some/Other/Directories
그리고 getenv("PWD")
이 날 제공 : 지금, getcwd()
다시 같은 경로를 나에게 제공
/Users/carl/DirectoryWithoutSpaces
그래서 - 기호 링크가 해결되지 않는 getcwd()
같은 어떤 기능이?
편집 :
나는cd Some/Other/Directories ; make
에
make -C Some/Other/Directories
을 변경하고 다른 해결책이 없다면 다음 getenv("PWD")
작품 .. 나는 그것을 사용할 수 있습니다.
경로의 공백으로 인해 프로그램의 어떤 부분이 작동하지 않습니까? – eruciform
'mv ~/"공간이있는 디렉토리"~/DirectoryWithoutSpaces'? : P – muhmuhten
@eruciform, 문제의 도구는 많은 수의 메이크 파일을 생성합니다. 이 경로 이름에 공백이 있으면 여러 가지 이유가 있습니다. 필자는 편집에서 언급 한 변경 사항을 적용했으며, 현재 공간 문제를 전체적으로 수정하고 있습니다. 그러나 상관없이 symlink와 해결 된 경로 이름을 사용하여 makefile을 생성하는 것은 다소 이상합니다. 위에 수정 한 내용은 수정되었지만 여전히 대체 솔루션에 관심이 있습니다. –