Erlang中的编译错误:";无法分析文件,放弃";

Erlang中的编译错误:";无法分析文件,放弃";,erlang,Erlang,我刚刚开始研究Erlang并尝试编译我的第一个程序。与教程相比,一切看起来都不错,但我似乎无法摆脱这个错误 这是我的代码,保存在“无用的.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. he

我刚刚开始研究Erlang并尝试编译我的第一个程序。与教程相比,一切看起来都不错,但我似乎无法摆脱这个错误

这是我的代码,保存在“无用的.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).
我将目录更改为无用的.erl目录:

cd("C:/Users/CP/Documents/Erlang").
然而,当我跑的时候

c(useless).
我明白了


如果您的文件看起来正常,但Erlang编译器抱怨它无法解析该文件,那么您的代码可能具有无效编码

据介绍,Erlang只接受
UTF-8
Latin-1
编码的源代码

有效的编码是拉丁语-1和UTF-8,其中字符的大小写可以自由选择

请注意,您仍然只能在字符串和注释中使用扩展字符集:

在Erlang/OTPR16B中,Erlang令牌的语法被扩展以处理Unicode。支持仅限于字符串文本和注释

如果出现解析错误或非法字符错误,您应该

  • 确保您的文件以
    UTF-8
    Latin-1
    编码方式保存
  • 确保不要在注释和字符串之外使用UTF文本
  • 对于较旧的Erlang版本(在Erlang 17之前),您可以尝试在文件的前两行中显式指定编码

    %% coding: utf-8
    %%% or
    %% For this file we have chosen encoding = Latin-1
    %%% or
    %% -*- coding: latin-1 -*-
    

  • 如果您的文件看起来正常,但Erlang编译器抱怨它无法解析该文件,那么您的代码可能具有无效编码

    据介绍,Erlang只接受
    UTF-8
    Latin-1
    编码的源代码

    有效的编码是拉丁语-1和UTF-8,其中字符的大小写可以自由选择

    请注意,您仍然只能在字符串和注释中使用扩展字符集:

    在Erlang/OTPR16B中,Erlang令牌的语法被扩展以处理Unicode。支持仅限于字符串文本和注释

    如果出现解析错误或非法字符错误,您应该

  • 确保您的文件以
    UTF-8
    Latin-1
    编码方式保存
  • 确保不要在注释和字符串之外使用UTF文本
  • 对于较旧的Erlang版本(在Erlang 17之前),您可以尝试在文件的前两行中显式指定编码

    %% coding: utf-8
    %%% or
    %% For this file we have chosen encoding = Latin-1
    %%% or
    %% -*- coding: latin-1 -*-
    

  • 重命名并重新编译文件。代码很好。使用ansiutf-8编码保存。未使用utf-8编码保存,谢谢@Lol4t0@Lol4t0您应该将您的评论添加为真实答案,以便OP可以将此问题标记为已回答。重命名并重新编译文件。代码很好。使用ansiutf-8编码保存。未使用utf-8编码保存,谢谢@Lol4t0@Lol4t0您应该添加您的评论作为真实答案,以便OP可以将此问题标记为已回答。