|
|
1
6
不确定你是否会喜欢这个技巧,但是你可以使用一个解析转换。 我们首先定义一个基本的解析转换模块:
编译它,然后您可以在希望它工作的模块中包含这两个头。这应给出以下信息:
如果您使用的是R14B并编译它,那么应该具有如下所示的模块抽象格式:
这告诉我们,我们可以同时使用这两个头,有效的头将自动包含,而另一个将出错。我们要做的就是把
这将删除错误包含,仅当它在您需要的精确模块上。其他乱七八糟的包括应该照常失败。 我还没有在所有版本上测试过,所以如果它们之间的行为发生了变化,这就不起作用。另一方面,如果保持不变,这个parse_转换将是独立于版本的,代价是需要对模块的编译顺序进行排序,这对于Emakefiles和rebar来说非常简单。 |
|
|
2
2
如果使用makefile,可以执行以下操作 ERTS|VER=$(外壳erl+V 2>&1 |出口-o'[0-9]+[0-9]+[0-9]+[0-9]+') 然后在erlc参数或Emakefile中匹配字符串并定义宏。 别无选择,阿飞。 |