2009-10-14 14 views

Odpowiedz

1

Jeśli skonfigurować strukturę katalogów tak:

/ 
/src/ 
/ebin/ 

i umieść moduł (np „my_file.erl”) w "/src/", a następnie skompiluj go (Cc Ck), a następnie Emacs powinien automatycznie umieścić belkę w katalogu"/ebin/".

Jeśli jednak twój moduł nie znajduje się w katalogu o nazwie "/ src /" (lub jeśli brakuje katalogu "ebin"), belka zostanie upuszczona obok pliku źródłowego.

Aby zobaczyć dokładnie, jak to działa, zerknij na numer $ERL_TOP/lib/tools/emacs/erlang.el i wyszukaj "ebin". Oto, co znajdziesz:

(defun inferior-erlang-compile-outdir() 
    "Return the directory to compile the current buffer into." 
    (let* ((buffer-dir (directory-file-name 
       (file-name-directory (buffer-file-name)))) 
    (parent-dir (directory-file-name 
       (file-name-directory buffer-dir))) 
     (ebin-dir (concat (file-name-as-directory parent-dir) "ebin")) 
    (buffer-dir-base-name (file-name-nondirectory 
       (expand-file-name 
       (concat (file-name-as-directory buffer-dir) 
        "."))))) 
    (if (and (string= buffer-dir-base-name "src") 
     (file-directory-p ebin-dir)) 
    (file-name-as-directory ebin-dir) 
     (file-name-as-directory buffer-dir)))) 

Nie wiem, kiedy to cukierek został dodany, ale to było w OTP_R13B03 i to działa na mnie w R14B03.