자식 소스에서 Emacs24 컴파일하기


1

나는 꽤 오랫동안 emacs의 시험판을 사용 해왔다. git from을 사용하여 코드를 확인하고 git://git.savannah.gnu.org/emacs.gitINSTALL.txt의 지침을 따릅니다. 내 emacs "정보"화면에 따르면 24.0.50.1에서 마지막으로 정상적으로 작동했습니다. 그 이후로 정기적으로 emacs 24 버전을 업데이트하려고 시도했지만 다음 오류와 함께 컴파일이 항상 실패합니다 (자체 테스트 또는 부트 스트랩 부분에서).

Loading button (compiled; note, source file is newer)...
Loading startup (compiled; note, source file is newer)...
Loading /usr/local/src/emacs/lisp/loaddefs.el (source)...
Symbol's function definition is void: replace-buffer-in-windows
make[1]: *** [bootstrap-emacs] Error 1
make[1]: Leaving directory `/usr/local/src/emacs/src'
make: *** [src] Error 2

몇 달 동안 이렇게되었습니다. 솔루션 / 해결 방법이 있는지 정기적으로 인터넷 검색을 해왔지만 아무것도 찾지 못했습니다. 내가 유일하게 맞습니까? 그렇다면 해결 방법에 대한 제안이 있습니까? emacs 24의 최신 시험판을 절대적으로 가지고 있어야하는 것은 아니지만 더 이상 컴파일 할 수없는 이유와 다른 사람이 왜 오류에 부딪치지 않는지 여전히 알고 싶습니다. 구글이 선택할 수있는 곳이라면 어디든 언급 할 수있다).

업데이트 : 이것은 Ubuntu 11.10 Desktop 시스템에서 발생했으며 이제는 12.04 베타 버전, 모두 x64에서 발생했습니다.


어떤 시스템을 컴파일하려고합니까? 특별한 컴파일러 스위치?
Der Hochstapler

방금 x64 Ubuntu 서버에서 테스트했습니다. ./autogen.sh && ./configure && make불만없이 emacs 바이너리를 뱉어냅니다.
Der Hochstapler

시도 git clean -xdf확인 된 config.status이 다른 어떤을 없애.
kindahero

또한 우분투에서 최소 emacs24 설치를 참조하십시오 ? 설치 공간이 작은 Emacs 구축에 대한 지침을 제공합니다.
jww

답변:


1

새 디렉토리에 최신 버전을 복제하는 대신 (뒤에 "현재 위치에서"풀하고 make distclean, ./autogen.sh, ./configure,은 make) 그것을 해결 것으로 보인다. 따라서 이전 버전의 컴파일 프로세스에는 남겨 두어야 할 것이 있습니다.

따라서 비슷한 문제가 발생하면 포기하기 전에 새 디렉토리로 "깨끗한"체크 아웃을 시도하십시오.


복제는 서버에 좋지 않으며 git은 사본을 처리하는 것이 현명합니다. git clean -xdf. 그런데 gnu 서버에 대한 압력을 피하기 위해 github.com/emacsmirror/emacs.git 에서 당기는 방법
kindahero

git clean 명령을 사용해보십시오. 그러나 정확하게 말하면 처음 복제 한 다음 pull을 사용하여 업데이트했습니다.
Marius Kjeldahl

1

이것은 나에게 일어났다. 에 의해 제거되지 않은 오래된 elisp 컴파일 아티팩트가있는 것 같습니다 make clean. 나는 그것을 고쳤다

find . -name '*.elc' -print0 | xargs -0 rm -f

당신은 항상 사용하려면, 조심 print0에 대한 find-0대한 xargs안전을 위해, 또는 사용 find … -exec rm -f '{}'.
slhck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.