7

当我尝试使用 -pz 像这样在 escript 中设置相对代码路径时

#!/usr/bin/env escript
%% -*- erlang -*-
%%! -pz ../dir-of-some-beams

该路径是相对于我从中运行 escript 的目录进行解释的,这使得它对于设置相对于脚本位置的路径毫无用处。

我当前的“解决方法”是使用令人讨厌的绝对路径,因为所有这些都是存储库的一部分,我不希望它依赖于位置。

那么如何设置相对于 escript 所在目录的代码路径呢?

4

1 回答 1

19

我自己才发现的:

在 main 开头添加如下代码:

true = code:add_pathz(filename:dirname(escript:script_name()) 
                       ++ "/../dir-of-some-beams"),

我建议始终测试true这些code函数,因为它很容易键入code:add_pathsz需要字符串列表并始终返回ok,即使您只传递一个字符串 - 但它不会将代码路径设置为单个目录(即顺便说一句,很烦人的行为)。

于 2011-07-01T08:54:39.523 回答