【问题标题】:How to use dialyzer with parse transform modules如何将透析器与解析转换模块一起使用
【发布时间】:2014-04-10 15:46:54
【问题描述】:

我正在尝试在我的 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)上。有什么想法吗?

谢谢

【问题讨论】:

    标签: erlang dialyzer parse-transform


    【解决方案1】:

    另一种更简单的方法是使用+debug_info 进行编译,然后让dialyzer 分析生成的.beam 文件。

    【讨论】:

    • 是的,这就是我最后所做的。更简单。
    【解决方案2】:

    所以,我应该错过文档中的某些内容。有一个有效的命令:

    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同上。带表达式

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-12
      • 2013-01-30
      • 2020-01-03
      • 2021-08-17
      • 2016-10-22
      • 2020-06-14
      • 1970-01-01
      • 2023-04-05
      相关资源
      最近更新 更多