2013-04-15 7 views
0

나는 Erlang에 처음으로 익숙하다. 실제로 Erlang 모듈을 컴파일하려고하는데 실제로는 존재하지만 그 파일이 없다는 오류가 발생하고있다.erl.exe를 사용하여 Erlang 모듈 컴파일하기

내가 왜 erl.exe가 컴파일에 실패했는지에 대한 제안 사항은 useless.erl입니다.

미리 감사드립니다.

erl.exe 명령 프롬프트 그 형태와

1> filename:absname("C:/Users/modules"). 
"C:/Users/modules" 
2> c(useless). 
useless.erl:none: no such file or directory 

(useless.erl)

-module(useless). 
-export([add/2, hello/0, greet_and_add_two/1]). 

add(A,B) -> 
A + B. 

%% Shows greetings. 
%% io:format/1 is the standard function used to output text. 
hello() -> 
io:format("Hello, world!~n"). 

greet_and_add_two(X) -> 
hello(), 
add(X,2). 
+0

'useless.erl'을 어떻게 만들었습니까? 일부 Windows 편집기는 "텍스트"편집기이며 파일 nane에 자동으로 .txt를 추가합니다. 그래서 당신의 경우 파일은 사실'erlang이 발견하지 못하는'useless.erl.txt'라는 이름이됩니다. – rvirding

+0

답장을 보내 주셔서 감사합니다. 아니요, .erl로 끝나는 쓸모없는 끝이며 .ltl 확장자가 없으므로 erlang 아이콘이 있습니다. – AnchovyLegend

+1

'filename : absname/1'은 실제로 디렉토리를 변경하지 않습니다. cd ("c :/users/modules")가 필요하다고 생각합니다. ' –

답변

3

을 (주 모듈은 사실 useless.erl 포함되어 있습니까), 당신은 erl 동일하게 실행해야 디렉토리를 컴파일하려고하는 모듈로 설정하십시오. c 기능을 사용할 때 파일 경로를 지정할 수 있습니다. 그러면 현재 디렉토리에 .beam 파일이 생성됩니다 :

Erlang R16B (erts-5.10.1) [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace] 

Eshell V5.10.1 (abort with ^G) 
1> c("stackoverflow/passfun.erl"). 
{ok,passfun} 
2> passfun:some_func(). 
hello 
+0

답장을 보내 주셔서 감사합니다. 이것은 나를 위해 작동하지 않았다. 나는'c' 명령을 실행할 수 없었다. 다음과 같은 오류가 발생합니다.'쓸데없는 ​​.bea # : 파일 쓰기 오류 ' – AnchovyLegend

+4

어디에서'erl'을 실행하고 있습니까? 현재 디렉토리에 쓸 수있는 권한이 없을 수도 있습니다. – kjw0188

+0

+1, 감사합니다. 관리자 권한으로'erl.exe'를 실행하면 권한이 실제로 문제가되었습니다. 모두 잘 작동했습니다. – AnchovyLegend