2009-08-14 3 views
10

Erlang 13B를 설치하고 자습서를 따라했습니다.Windows에서 Erlang 코드 컴파일

c(tut)에 도착할 때마다 (ok, tut) 대신 오류가 발생하므로 설치된 모듈이없는 것 같습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?

나는 Emacs를 사용해 봤지만 실제로 사용법을 모르며 얼랭 (Erlang) 모드를 사용하는 데 익숙하지 않았다. 이렇게 예, 들어 나는 입력 : 작동하는 c(tut)를 들어

(setq load-path (cons "C:/Program Files/erl5.6.2/lib/tools-<ToolsVer>/emacs" 
    load-path)) 
    (setq erlang-root-dir "C:/Program Files/erl5.6.2") 
    (setq exec-path (cons "C:/Program Files/erl5.6.2/bin" exec-path)) 
    (require 'erlang-start) 
+0

나는 Erlang과 Emacs를 동시에 발견하고있다. (둘다 놀라운 소프트웨어 다.) Emacs를 처음부터 시작하는 것이 좋다. 동시에 두 systemz을 배울 필요가 없습니다. Erlang에서 텍스트 편집기를 사용할 수 있으며 Notepad ++도 훌륭한 작업을 수행하고 있습니다. –

답변

16

는 현재 디렉토리에 tut.erl 파일이 있어야한다.

Linux 및 OS X와 ​​같은 시스템에서 일반적으로 나타나는 것처럼 명령 줄에서 Erlang 인터프리터를 시작하면 쉽게 수행 할 수 있지만 Windows에서는 일반적인 패턴이 아닙니다. 시작 메뉴의 아이콘에서 Erlang을 시작할 때 현재 작업 디렉토리의 기본값은 파일이 아닌 werl.exe입니다.

예상대로 명령을 작동 시키려면 Erlang 쉘을 시작한 후 작업 디렉토리를 tut.erl의 위치로 변경해야합니다.

cd("c:/Users/myname/Desktop"). 

(예, 슬래시를 사용해야 슬래시가 얼랑 문자열에서 특별하다..)

에 : tut.erl가 바탕 화면에있는 경우,이 명령은 Vista 또는 Windows 7에서이 같은 것 Windows XP 이전 버전에서는 Desktop 폴더가 훨씬 더 깊게 파묻혀 있습니다. 시스템 PATHwerl.exe을 입력하고 해당 시스템에서 명령 줄을 사용하는 것이 더 간단 할 수 있습니다.

반드시 필요하지는 않지만 Cygwin을 설치하는 것이 좋습니다. Bash 쉘은 더 많은 Linux 또는 OS X 환경을 제공 할 것이며, 이러한 OS 용으로 구성된 다른 자습서로 작업하는 데 도움이 될 것입니다. 당신이 얼랑 쉘을 열고 설치 한 후

+1

한편, 다른 Erlang 코드가있는 디렉토리에 * .beam 파일이 있으면 * .beam 파일과 werl.exe 사이에 Windows 파일 연결을 설정할 수 있으므로 두 번 클릭하면 Erlang이로드됩니다 그들을 암시 적으로 파일의 위치로 작업 디렉토리를 설정 끝납니다. –

9

수행

1> pwd(). 
C:/Program Files/erl5.7.1/usr 
ok 
2> 

당신이 파일이 있다고 가정; "tut.erl"바탕 화면.

-module(tut). 
-compile(export_all). 

hello_world() -> 
    hello. 

당신은 먼저 바탕 화면에 현재 작업 디렉토리의 경로를 변경해야합니다 (또는 어디 컴파일을 수행 할 적) : 내용은 다음과 같이 나타납니다. 이와 같이 아마도 :

2> cd("F:/Desktop"). 
F:/Desktop 
ok 
3> 

그런 다음 컴파일을 수행 할 수 있습니다. , Erlang official documentation 더 많은 정보를 쉘에 이쪽을 봐 :

3> c(tut). 
{ok,tut} 
4> 

는 여기에 설명서를 참조 모듈을

4> tut:hello_world(). 
hello 
5> 

더 많은 정보를 테스트이이 시작됩니다 Shell module

희망을.

+3

오, 그건 그렇고, 윈도우에서 절대적으로 가장 좋은 팁은 당신이 가진 각 프로젝트에 대해 werl.exe에 대한 윈도우 바로 가기를 생성 한 다음 "현재 위치"속성을 현재 작업 디렉토리로 변경하는 것입니다. 또 다른 팁은 -sname, -setcookie (분산 환경에서 유용) 및 아마도 -pa와 같은 "대상"속성에 플래그를 추가하여 코드 검색 경로에 경로를 추가하는 것입니다. 그 (것)들에 관하여 더 많은 것을 정보 : http://erlang.org/doc/man/erl.html –

+0

나의 질문에 응답하기 위하여 시간을내어 주셔서 감사합니다 그러나 나는 일하기 위하여 c (tut)를 얻을 수 없다, 나는 아직도 이것을 얻는다 : Erlang (BEAM) 에뮬레이터 버전 5.6.2 [smp : 2] [async-threads : 0] Eshell V5.6.2 (abort with^G) 1> cd ("F :/Desktop"). C :/Program Files/erl5.6.2/usr ok 2> c (tut)입니다. ./tut.erl : none : 그런 파일이나 디렉토리가 없습니다. error 3> 모든 튜토리얼은이 모듈이 이미 설치되어 있다고 가정하는 것으로 보입니다. 어떤 모듈을 추적하지 못하는 것 같아요. – Niall

+1

명령 cd ("F :/Desktop"). cd 명령으로 드라이브 문자를 가로 질러 디렉토리를 바꿀 수 없다는 윈도우 커맨드 라인의 문제를 겪고있다. 작업 디렉토리를 F : btw help()로 설정하기위한 erlang 단축키를 수정하십시오. 쉘 명령을 보여줍니다. – danio

1

또한 YourErlangInstallationPath\usr\

아래의 모양은 파일의 내용을 .erlang라는 이름의 초기화 파일을 만들 수 있습니다;

 
io:format("consulting .erlang in ~p~n" , 
[element(2,file:get_cwd())]). 
%% Edit to the directory where you store your code 
c:cd("O:/Erlang.Umut"). 
io:format("Now in:~p~n" , [element(2,file:get_cwd())]). 

자동으로 작업 폴더의 경로가 변경됩니다. (분명히 내 경로는 O:/Erlang.Umut이므로 교환해야합니다.)

콘솔을 실행할 때마다 폴더를 변경할 필요가 없습니다. 콘솔은 erl 파일에 직접 연결할 수 있습니다.

1

나는 최근에 윈도우에서 Erlang을 시도했다.

콘솔 창을 사용하여 사용중인 텍스트 편집기가 올바른 확장명 즉 파일을 제공하고 있는지 확인하십시오. filename.erl이 아니라 filename.erl.txt가 내 것이 었습니다!

메모장에 파일을 저장할 때 .txt가 추가되어 유니 코드로 저장되었습니다. 고정

0

여전히 "tut : erl : none : no such file or directory"가 나타나면 파일 이름이 잘못되었습니다. Windows 명령 프롬프트를 열고 바탕 화면으로 이동하여 "dir"을 입력하면 tut.erl의 이름이 tut.erl.txt라는 것을 알 수 있습니다. "ren tut.erl.txt tut.erl"이라고 입력하면 컴파일이됩니다.

0

werl의 현재 작업 디렉토리가 컴파일 할 파일과 같을 때 파일 이름은 전체 경로없이 인수로 제공됩니다. 그렇지 않으면 예를 들어. 가정 tut.erl는 C에 위치 : 얼랑 튜토리얼 \, 하나 같이 컴파일하려고 할 수 있습니다,

c("C:\\ErLang tutorials\\tut"). 

참고 : 큰 따옴표 포함하지 않는

  1. 이 :
  2. 가 백 슬래시를 사용하여 주어 구문 오류가 발생합니다 이스케이프 시퀀스