解决rebar3在中文环境下部分命令失败

本文介绍了rebar3在中文环境中遇到的部分命令执行失败的问题,以及通过修改命令行默认语言为英文来解决该问题的方法,包括修改注册表项为437,确保rebar3命令能顺利执行。同时,文中提及已向rebar3提交PR并已合并,以解决compile命令的报错,但rlx库的报错问题还在等待PR合并。
ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

问题

rebar3因为毕竟是基于英文环境开发的,很多命令匹配都是基于英文返回内容,因此可能部分命令会执行失败

===> Verifying dependencies...
===> Compiling game_fight
===> Assembling release game_fight-0.1.0...
===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace or consult rebar3.crashdump
===> When submitting a bug report, please include the output of `rebar3 report "your command"`

命令行里set DEBUG=1后,可以看到出错内容

===> Uncaught error: {case_clause,"脦陋 ...
===> Stack trace to the error location:
[{rlx_file_utils,win32_make_junction_cmd,2,
                 command"`

大多数都是因为rebar3和rlx的库里的windows下命令行只考虑英文情况引起的;

Cmd = "cmd /c mklink /j \"" ++ filename:nativename(T) ++ "\" \"" ++ filename:nativename(S) ++ "\"",
    case os:cmd(Cmd) of
        "Junction created " ++ _ ->
            ok;
        [] ->
            % When mklink fails it prints the error message to stderr which
            % is not picked up by os:cmd() hence this case switch is for
            % an empty message
            cp_r(Source, Target)
    end.

解决办法

当然去改rebar3的代码和rlx的代码也能解决问题。但是费力不讨好。
所以这里推荐直接修改命令行的默认语言为英文
修改命令行的文章可以看这里
简单的来说就是修改注册表的 HKEY_CURRENT_USER\Console\CodePage项为437
文章中只有一个没有写到,那就是如果没有找到上面提到的注册表项,就需要手动修改下命令行的配置,生成该项

修改命令行配置,产生注册表项

打开命令行后,右键修改属性中的任意一项(我没全试,就修改了下字体),F5刷新注册表就可以看到表项,修改后,重新打开的命令行都是默认英文的;
再次执行rebar3命令,应该可以顺利执行成功

2020-10-27 更新

rebar3 上我提交了一个pr 已经合并上去了,最新的rebar3 执行 compile的时候至少不会报错了
但是release因为rlx库的问题还是会报错。rlx也提交了pr,暂时还没有合并,将来合并了应该就都支持了

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值