상대 경로를 사용하여 같은 디렉토리에있는 파일에서 Lisp 파일을로드하려고합니다.상대 경로로 파일로드
내 파일 구조는 다음과 같습니다
repo/
subdir/
main.lisp
test.lisp
main.lisp
에서 나는 함수 정의의 번호를 가지고 있고, test.lisp
에 나는 기능을 테스트하려는.
내가 (load "main.lisp")
및 test.lisp
에 (load "main")
뿐만 아니라 경로에 변화의 번호를 사용하여 시도했다 (즉, 파일 이름 앞에 ./
포함)하지만 <filename>
가 전달 된 파일 이름입니다 나는 다음과 같은 오류가 두 번 (로드 기능)
File-error in function LISP::INTERNAL-LOAD: "<filename>" does not exist.
는 상대 경로를 사용 main.lisp
를로드 할 수 있는가?
그것은 내가 CMUCL을 실행하고 파일이로드되는 숭고한 텍스트 3.
로드되는 파일에 포함 된 경우에만 작동합니까? 나는 이것을 REPL을 통해 실행하려고 시도했지만'* load-truename * '의 값은'nil'이었다. 그러나,'(load "path-to-test.lisp")'를 사용했을 때 작동했습니다. – maxdeviant
예,'* load-truename *'은'load' 연산 중에 만 바인드됩니다. 비슷하게,'compile-file-pathname *'과'* compile-file-truename *'도'compile-file'의 실행 중에 만 바인드됩니다. – jlahd