我在嘗試在Windows 7(64位)上使用MinGW/MSYS構建Erlang RabbitMQ插件時遇到了上述錯誤。我使用Erlang v5.10.3(32位)。我能夠在我的系統上運行RabbitMQ。Erlang腳本:異常錯誤:右側值不匹配{error,enoent}
[email protected] /d/RabbitMQ/build-source/rabbitmq-public-umbrella/presence-exchange-master
$ make
[elided] generate deps
escript: exception error: no match of right hand side value {error,enoent}
in function generate_deps__escript__1389__793192__493000:detect_deps/5 (d:/RabbitMQ/build-source/rabbitmq-public-umbrella/generate_deps, line 40)
in call from generate_deps__escript__1389__793192__493000:'-main/1-fun-0-'/6 (d:/RabbitMQ/build-source/rabbitmq-public-umbrella/generate_deps, line 19)
in call from lists:foldl/3 (lists.erl, line 1248)
in call from generate_deps__escript__1389__793192__493000:main/1 (d:/RabbitMQ/build-source/rabbitmq-public-umbrella/generate_deps, line 17)
in call from escript:run/2 (escript.erl, line 747)
in call from escript:start/1 (escript.erl, line 277)
in call from init:start_it/1 (init.erl, line 1054)
in call from init:start_em/1 (init.erl, line 1034)
我已經張貼上引擎收錄完整的錯誤 - http://pastebin.com/S739wfhB 爲generate_deps的完整代碼可以在這裏找到 - http://pastebin.com/N4HVz8z1
詩篇。我使用Cygwin也嘗試過,但它返回另一個錯誤 - escript:無法打開文件:/首頁/富士通/ RabbitMQ的/建造源/ RabbitMQ的公共傘/ generate_deps
編輯1
CYGWIN返回:
$ make
[elided] generate deps
escript: Failed to open file: /cygdrive/d/RabbitMQ/build-source/rabbitmq-public-umbrella/generate_deps
[elided] generate deps
escript: Failed to open file: /cygdrive/d/RabbitMQ/build-source/rabbitmq-public-umbrella/generate_deps
make: *** No rule to make target 'build/deps.mk', needed by 'ebin/presence_exchange.beam'. Stop.
但是,我可以使用head命令打開文件。
[email protected] /cygdrive/d/RabbitMQ/build-source/rabbitmq-public-umbrella/presence-exchange-master
$ head /cygdrive/d/RabbitMQ/build-source/rabbitmq-public-umbrella/generate_deps
#!/usr/bin/env escript
%% -*- erlang -*-
-mode(compile).
%% We expect the list of Erlang source and header files to arrive on
%% stdin, with the entries colon-separated.
main([TargetFile, EbinDir]) ->
ErlsAndHrls = [ string:strip(S,left) ||
S <- string:tokens(io:get_line(""), ":\n")],
ErlFiles = [F || F <- ErlsAndHrls, lists:suffix(".erl", F)],
謝謝,但我可以使用head命令打開文件。請參閱上面的編輯1。可能是什麼原因? – Joshua
你確定要試圖打開同一個文件嗎?同時'head'打開文件進行閱讀,而在你的代碼中,你嘗試打開文件進行寫入。該文件有哪些訪問模式,以及它是什麼類型的文件? – rvirding
是的,它是同一個文件。 ls -l返回「-rwxr-xr-x 1富士通無2666 Jan 15 13:59 generate_deps」。我也試過chmod 777. generate_deps是某種bash文件,你可以在這裏看到代碼 - http://pastebin.com/N4HVz8z1 – Joshua