我正在尝试在我的erlang应用程序上使用透析器,但这是输出:
dialyzer \
--src -r src \
-pa /home/niahoo/src/popos \
-pa /home/niahoo/src/popos/deps/parse_trans \
--verbose
Checking whether the PLT c:/MinGW/msys/1.0/home/niahoo/.dialyzer_plt is up-to-date... yes
Proceeding with analysis...
dialyzer: Analysis failed with error:
Could not scan the following file(s): [{"c:/MinGW/msys/1.0/home/niahoo/src/popos/src/tools/r.erl",
["c:/MinGW/msys/1.0/home/niahoo/src/popos/src/tools/r.erl:none: undefined parse transform 'exprecs'\n"]},
{"c:/MinGW/msys/1.0/home/niahoo/src/popos/src/game/party2.erl",
["c:/MinGW/msys/1.0/home/niahoo/src/popos/src/game/party2.erl:none: undefined parse transform 'playerdupli'\n"]}]
Last messages in the log cache:
Reading files and computing callgraph...
我尝试将playerdupli.erl
放在与party2.erl
相同的目录中,但输出相同。 exprecs.erl
位于代码中:deps/parse_trans/src
。
代码编译并运行没有错误,包括parse_transform的东西。我在MinGW(Windows 8 64)上。有什么想法吗?
由于
答案 0 :(得分:2)
总是更容易的替代方法是使用+debug_info
进行编译,然后让透析器分析生成的.beam
文件。
答案 1 :(得分:1)
所以,我应该错过了文档中的内容。有一个有效的命令:
dialyzer \
--src -r src \
-pa /home/niahoo/src/popos \
-pa ebin \
-pa deps/parse_trans/ebin \
--raw \
--statistics \
-pa /home/niahoo/src/popos
允许dilayzer查找与include_lib一起使用的包含的.hrl
-pa ebin
允许查找我的parse_transform模块(playerdupli)
-pa deps/parse_trans/ebin
同上。用exprecs