0

我正在尝试在我的 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)上。任何想法 ?

谢谢

4

2 回答 2

2

另一种总是更容易的方法是编译+debug_info并让透析器分析结果.beam文件。

于 2014-04-10T07:46:54.070 回答
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 一起使用的包含 -pa ebin的 .hrl 允许查找我的 parse_transform 模块(playerdupli) -pa deps/parse_trans/ebin同上。带表达式

于 2013-05-23T20:58:08.450 回答