gpt4 book ai didi

erlang - "escript: no such file or directory:"错误

转载 作者:行者123 更新时间:2023-12-01 12:58:09 26 4
gpt4 key购买 nike

%cat 事实

#!/usr/bin/env escript
%% -*- erlang -*-
%%! -smp enable -sname factorial -mnesia debug verbose
main([String]) ->
try
N = list_to_integer(String),
F = fac(N),
io:format("factorial ~w = ~w\n", [N,F])
catch
_:_ ->
usage()
end;
main(_) ->
usage().

usage() ->
io:format("usage: factorial integer\n"),
halt(1).

fac(0) -> 1;
fac(N) -> N * fac(N-1).

%./事实“5”

脚本:没有这样的文件或目录:'./fact'

%whereis 脚本

脚本:/usr/bin/escript

%pacman -齐二郎

名称 : erlang
版本 : R14B04-1

为什么 escript 不运行“事实”?

在我的 Archlinux 机器上,escript 仍然不起作用!
%cat hello.erl 
main(_) -> io:fwrite("~p~n", "hello,world!").

%escript hello.erl
escript: no such file or directory: 'hello.erl'

%whereis escript
escript: /usr/bin/escript

%ls -l /usr/bin/escript
lrwxrwxrwx 1 root root 25 12月 18 17:37 /usr/bin/escript -> ../lib/erlang/bin/escript*

%/usr/lib/erlang/bin/escript hello.erl
escript: no such file or directory: 'hello.erl'

%strace -f -F -o aaa.txt /usr/lib/erlang/bin/escript hello.erl
escript: no such file or directory: 'hello.erl
%cat aaa.txt
execve("/usr/lib/erlang/bin/escript", ["/usr/lib/erlang/bin/escript", "hello.erl"], [/* 40 vars */]) = 0
...
open("hello.erl", O_RDONLY|O_LARGEFILE) = 3
...
execve("/usr/lib/erlang/bin/erl", ["/usr/lib/erlang/bin/erl", "+B", "-boot", "start_clean", "-noshell", "-run", "escript", "start", "-extra", "hello.erl"], [/* 40 vars */]) = 0.
...
stat64("hello.erl", 0xb5a44d90) = -1 ENOENT (No such file or directory)
open("hello.erl", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
......

为什么它使用“stat64”而不是“stat”?我正在使用 32 位系统。
%uname -a
Linux myarch 3.1.5-1-ARCH #1 SMP PREEMPT Sun Dec 11 06:26:14 UTC 2011 i686 AMD Athlon(tm) 64 X2 Dual Core Processor 3600+ AuthenticAMD GNU/Linux
%erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 5.8.5

真挚地!
%ls
fact*
%escript fact "5"
escript: no such file or directory: 'fact'
%escript fact 5
escript: no such file or directory: 'fact

%ls -l /usr/bin/escript
lrwxrwxrwx 1 root root 25 10月 15 03:24 /usr/bin/escript -> ../lib/erlang/bin/escript*

奇怪的问题?

最佳答案

** 注意 * 此答案是为 Windows 用户定制的,但对其他操作系统用户可以理解和有用
escript$PATH环境变量?通常它隐藏在 ERTS_PATH/bin哪里ERTS_PATHC:\Program Files (x86)\erl5.8.4\erts-5.8.4\在 Windows 7 中。在 Linux 或 Unix 或 MAC 上寻找等效的 erts。将此路径( C:\Program Files (x86)\erl5.8.4\erts-5.8.4\bin )添加到 $PATH . escript 应该可以在任何地方工作

关于erlang - "escript: no such file or directory:"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8461883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com