2009-08-14 21 views
10

Instalé Erlang 13B y traté de seguir los tutoriales.Compilación del código Erlang en Windows

Cada vez que llego al c(tut), aparece un error en lugar de (ok, tut), por lo que parece que no hay módulos instalados. ¿Alguien puede señalarme en la dirección correcta?

He intentado con Emacs pero realmente no sé cómo usarlo y ni siquiera me he acercado para que funcione el modo Erlang. Por ejemplo, ¿por dónde escribir:

(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

I están descubriendo tanto Erlang como Emacs al mismo tiempo (que son dos grandes piezas de software asombrosas) Le sugiero que ponga a Emacs de lado como un comienzo. No aprende dos systemz al mismo tiempo. Puedes usar cualquier editor de texto con Erlang, y Notepad ++ también está haciendo un gran trabajo. –

Respuesta

16

para c(tut) a trabajar, tiene que haber un archivo tut.erl en el directorio actual.

Esto es fácil de lograr si inicia el intérprete de Erlang desde la línea de comandos, como es común en sistemas como Linux y OS X, pero este no es el patrón habitual en Windows. Cuando inicia Erlang en Windows desde el ícono en el menú Inicio, el directorio de trabajo actual tiene de manera predeterminada la ubicación werl.exe, que no está donde está su archivo tut.erl.

Para hacer que su comando funcione como se espera, debe cambiar su directorio de trabajo para que sea la ubicación de tut.erl después de iniciar el shell de Erlang. Si tut.erl está en el escritorio, el comando será algo como esto en Vista o Windows 7:

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

(Sí, usted tiene que utilizar barras diagonales Las barras invertidas son especiales en las cadenas de Erlang..)

En Windows XP y anteriores, tu carpeta de Escritorio está enterrada mucho más profundamente. Puede ser más simple poner werl.exe en el sistema PATH y usar la línea de comando en tales sistemas.

No es necesario, pero es posible que desee considerar la instalación de Cygwin. Su shell Bash le dará un entorno similar a Linux u OS X, que le ayudará a trabajar con otros tutoriales que están estructurados para esos sistemas operativos.

+1

Por cierto, una vez que tiene un archivo * .beam en el directorio con otro código de Erlang, puede configurar una asociación de archivos de Windows entre los archivos * .beam y werl.exe, de modo que cuando haga doble clic en ellos, Erlang cargue ellos e implícitamente termina configurando su directorio de trabajo en la ubicación del archivo. –

9

Después de instalar Erlang abrir la cáscara y hacer:

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

Suponga que tiene un archivo; "tut.erl" en su escritorio. Contenido podría tener este aspecto:

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

hello_world() -> 
    hello. 

debe cambiar la ruta del directorio de trabajo actual en el escritorio primera (o donde quiera que quiere hacer la compilación). De esta manera, quizás:

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

Luego puede realizar la compilación.

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

continuación, probar el módulo

4> tut:hello_world(). 
hello 
5> 

Más información consultar la documentación aquí: Erlang official documentation Más información en la cáscara, mira aquí: Shell module

Esperanza éste consigue su marcha.

+3

Ah, y por cierto, en Windows, el mejor consejo que tengo es crear un acceso directo a werl.exe para cada proyecto que tenga y luego cambiar la propiedad "Ejecutar en" al directorio de trabajo actual. Otro consejo es agregar indicadores en la propiedad "Objetivo", como -sname, -setcookie (útil en entornos distribuidos) y quizás -pa para agregar rutas adicionales a las rutas de búsqueda de códigos. más información sobre los aquí: http://erlang.org/doc/man/erl.html –

+0

Gracias por tomarse el tiempo para responder mi pregunta, pero no puedo hacer que el c (tut) funcione, todavía me sale esto: Erlang (BEAM) emulador versión 5.6.2 [smp: 2] [async-hilos: 0] Eshell V5.6.2 (abortar con^G) 1> cd ("F:/Desktop"). C:/Archivos de programa/erl5.6.2/usr ok 2> c (tut). ./tut.erl: ninguno: no existe tal archivo o directorio error 3> Dado que todos los tutoriales parecen suponer que estos módulos ya están instalados, pensé que venían de serie; Parece que no puedo rastrear los módulos, lo cual es un poco deprimente. – Niall

+1

Su comando cd ("F:/Desktop"). está golpeando el problema de la línea de comando de windows que cd no puede cambiar directorios a través de letras de unidad. Modifique su atajo erlang para establecer el directorio de trabajo en F: por cierto help(). muestra comandos de shell. – danio

1

También puede crear un archivo de inicialización llamado .erlang bajo YourErlangInstallationPath\usr\

el contenido del archivo debe ser algo como esto;

 
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())]). 

cambiará automáticamente la ruta a su carpeta de trabajo. (Obviamente, mi ruta es O:/Erlang.Umut, debe reemplazarla por la suya).

No es necesario cambiar las carpetas cada vez que inicia la consola. La consola podrá llegar a sus archivos erl directamente.

1

Recientemente probé Erlang en Windows.

utilice la ventana de la consola para asegurarse de que el editor de texto que está utilizando le dé a sus archivos la extensión correcta, es decir. filename.erl y no filename.erl.txt como el mío!

cuando guardé mis archivos en el bloc de notas, agregué .txt, así que guardé en unicode. fijo

0

Si aún obtiene "tut: erl: none: no existe dicho archivo o directorio", el nombre del archivo es incorrecto. Si abre un símbolo del sistema de Windows y se mueve a su escritorio y escribe "dir", verá que tut.erl se llama realmente tut.erl.txt. escriba "ren tut.erl.txt tut.erl" y ahora su compilación funcionará.

0

Cuando el directorio de trabajo actual de werl es el mismo que el archivo que se va a compilar, el nombre de archivo se da como argumento sin la ruta completa. De lo contrario, por ej. Suponiendo tut.erl se coloca en C: \ tutoriales Erlang, uno puede tratar de compilar como,

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

Nota:

  1. Sin comillas dobles: las causas de error de sintaxis
  2. La barra invertida se da usando secuencia de escape
Cuestiones relacionadas