defcustom이있는 매크로는 바이트 컴파일시 "변수가 무효로 기호 값이 없음"오류


13

내 패키지 중 2 개에는 본문에 defcustom양식에 정의 된 변수가 의존하는 매크로가 있습니다.

Melpa에서 패키지를 설치할 때 바이트 컴파일은 다음과 같이 끝납니다.

오류 : 변수로서의 기호 값이 무효입니다 : my-defcustom-variable

그런 다음 버퍼에서 파일을 열어서 파일을 수동으로 바이트 컴파일하면 작동합니다.

autoload쿠키로 시도 했지만 여전히 같은 동작을합니다.

여기서 중요한 것이 빠져 있습니다.


1
defcustom매크로 본문 에 따라하는 것은 이상한 일입니다. 왜냐하면 defcustom바이트 컴파일 (매크로가 확장 된) 동안에 만 의지가 적용되기 때문입니다. 이것은 나에게별로 의미가없는 것 같습니다.
lunaryorn

세바스찬 감사합니다. 당신이 옳고 많은 것을 설명합니다.
syl20bnr

답변:


15

defcustom표현은 바이트 컴파일 중에 평가되지 않으므로 매크로가 확장 될 때 defcustom 컴파일하지만 실행되지 않았기 때문에, 변수는 아직 존재하지 않습니다. defcustom을 다른 파일로 옮기거나 (파일 require시작 부분에) defcustom을 감싸서 넣을 수 있습니다 eval-and-compile.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.