Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compilation 跳过某些操作系统的端口编译?_Compilation_Erlang_Rebar - Fatal编程技术网

Compilation 跳过某些操作系统的端口编译?

Compilation 跳过某些操作系统的端口编译?,compilation,erlang,rebar,Compilation,Erlang,Rebar,我有一个基于钢筋的Erlang应用程序,它构建了一个端口程序。此端口程序特定于Linux,因此在Mac OS上编译失败。但是,我希望钢筋在Mac OS上构建时跳过端口程序。我该怎么做 rebar.config中的当前规范如下所示: {port_specs, [{"priv/my_port", ["c_src/foo.c", "c_src/bar.c"]}]}. {port_specs, [{"linux", "priv/my_port", ["c_src/foo.c", "c_src/bar.

我有一个基于钢筋的Erlang应用程序,它构建了一个端口程序。此端口程序特定于Linux,因此在Mac OS上编译失败。但是,我希望钢筋在Mac OS上构建时跳过端口程序。我该怎么做

rebar.config
中的当前规范如下所示:

{port_specs, [{"priv/my_port", ["c_src/foo.c", "c_src/bar.c"]}]}.
{port_specs, [{"linux", "priv/my_port", ["c_src/foo.c", "c_src/bar.c"]}]}.
如前所述,
port_specs
的列表元素具有另一种形式
{ArchRegex,TargetFile,Sources}
。因此,请按照以下方式编写钢筋配置:

{port_specs, [{"priv/my_port", ["c_src/foo.c", "c_src/bar.c"]}]}.
{port_specs, [{"linux", "priv/my_port", ["c_src/foo.c", "c_src/bar.c"]}]}.
“那个正则表达式和什么匹配?”你可能会问。它与的返回值匹配,返回值由以下部分组成,用连字符分隔:

  • erlang:system\u info(OTP\u release)
    返回的OTP版本,例如
    “R15B02”
  • erlang:system\u info(system\u architecture)
    返回的系统架构。对于类Unix系统,这是由配置脚本确定的CPU供应商操作系统三元组,例如
    “i386-apple-darwin10.8.0”
    “x86\u 64-unknown-linux-gnu”
  • 仿真器字号32或64,基于
    erlang:system\u info({wordsize,external})
    的返回值
  • 操作系统系列,
    unix
    win32
    。(由
    os:type/0
    返回的元组的第一个元素)
因此,最终的结果将类似于
“R15B01-i386-apple-darwin10.8.0-32-unix”
“R15B02-x86-U 64-unknown-linux-gnu-64-unix”

,因为
端口规范的列表元素有另一种形式
{ArchRegex,TargetFile,Sources}
。因此,请按照以下方式编写钢筋配置:

{port_specs, [{"priv/my_port", ["c_src/foo.c", "c_src/bar.c"]}]}.
{port_specs, [{"linux", "priv/my_port", ["c_src/foo.c", "c_src/bar.c"]}]}.
“那个正则表达式和什么匹配?”你可能会问。它与的返回值匹配,返回值由以下部分组成,用连字符分隔:

  • erlang:system\u info(OTP\u release)
    返回的OTP版本,例如
    “R15B02”
  • erlang:system\u info(system\u architecture)
    返回的系统架构。对于类Unix系统,这是由配置脚本确定的CPU供应商操作系统三元组,例如
    “i386-apple-darwin10.8.0”
    “x86\u 64-unknown-linux-gnu”
  • 仿真器字号32或64,基于
    erlang:system\u info({wordsize,external})
    的返回值
  • 操作系统系列,
    unix
    win32
    。(由
    os:type/0
    返回的元组的第一个元素)
因此,最终结果将类似于
“R15B01-i386-apple-darwin10.8.0-32-unix”
“R15B02-x86_64-unknown-linux-gnu-64-unix”