使用rebar将头文件(例如wx.hrl)包含在一个发布版本中的最佳方法是什么?
我正在准备使用Rebar的应用程序的版本,我想知道从标准库中包含标头文件的通常方法是什么.就我而言,它是wx.hrl文件,它在我的代码中包含其完整的绝对路径. 我想这不是正确的方法:o) 解决方案 -include_lib("wx/include/wx.hrl"). 这使得预处理器在代码路径中查找wx应用程序的最新版本.请参阅这个问题有关更多详细信息.
14 2023-12-15
编程技术问答社区
在rebar3问题中,YAWS被嵌入为依赖关系
我正在尝试在嵌入式模式下使用偏航(AS DEP).我正在使用rebar3.我的应用程序将偏航作为DEP&通过Rebar3构建(经过一些调整之后)并释放正常,但是当我启动它时,偏航就会崩溃.看来即使通过它可以处于嵌入式模式,也正在尝试启动. 我正在尝试将yaws.app.src配置为嵌入式模式env,如下所示: {application,yaws, [{description,"yaws WWW server"}, {vsn, {cmd, "sed -ne '1,/^YAWS_VSN=/s/^YAWS_VSN=//p' vsn.mk 2>/dev/null"}}, {modules,[]}, {registered, []}, {mod,{yaws_app,[]}}, {env, [ {embedded, true} % true | false ]}, {applications,[ker
26 2023-04-19
编程技术问答社区
Mochiweb。包含和编译其他库
我的应用使用Mochiweb. 我已经注意到摩chiweb文件位于myapp/deps/mochiweb目录中,rebar在我运行时将它们编译为myapp目录. 我想添加ibrowse编写一些测试,以向我的应用程序提出HTTP请求.因此,我从github到myapp/deps/ibrowse目录克隆ibrowse. ,但似乎Erlang不知道在哪里获取ibrowse的.beam文件,因此我使用ibrowse模块失败的所有测试: myapp ebin %%compiled tests reside here, tests which use ibrowse fail (badarg) deps mochiweb ibrowse ebin %%compiled ibrowse module resides here src tests 如何使我的基于Mochiweb的应用使用其他ERLANG/OTP外部库? 我应该为此编辑rebar.
6 2023-03-18
编程技术问答社区
Erlang的标准构建工具是什么?
我是Erlang编程语言的新手. Erlang有标准的构建工具吗? 我已经谷歌搜索了这些,不确定我应该使用哪一个. erlang make /a> rebar erlang.mk 解决方案 钢筋逐渐被 rebar3 ,提供更多确定性的构建和解决方案,包装,包装(与之集成)(与hex.pm),等等. 作为当前的钢筋和钢筋维护者之一,我建议rebar3. 其他解决方案 是的,我们可以使用默认制造工具来构建您的代码(大多数项目都使用钢筋.因为它很容易方便. 是的,我们可以使用erlang.mk,它还提供了必要的功能.这很大. 我建议您从钢筋开始. 其他解决方案 rebar3是使Erlang项目更易于管理的工具. Erlang的一种构建工具和软件包管理.当我们启动项目,创建项目骨架,进行编译和构建项目,将包装发布到生产,下载Erlang软件包等时,这也非常有帮助.
20 2023-03-18
编程技术问答社区
Erlang的标准构建工具是什么?
我是erlang编程语言的新手.在erlang中有标准构建工具吗? 我已经oogled出来了,不确定我应该使用哪一个. erlang make http://www.erlang.org/doc/man/make.html rebar erlang.mk 解决方案 rebar逐渐被 rebar3 替换,它提供了更多的确定性构建和冲突解决方案,包(集成hex.pm),等等. 作为当前的钢筋和钢筋3维护者之一,我推荐螺纹钢3. 其他解决方案 是,我们可以使用默认制作工具来构建您的代码( http ://www.erlang.org/doc/man/make.html ).但它不是那么方便. 大多数项目使用钢筋.因为它很容易和方便. 是,我们可以使用Erlang.mk,它还提供了必要的功能.它是大makefile. 我建议您从钢筋开始. 其他解决方案 rebar3是一个使erlang项目更易于管理的工具. Erlang一种
40 2023-02-01
编程技术问答社区
混合型二朗/埃利克斯项目--我可以使用混合型或螺纹钢吗?
对于Erlang代码,我使用 rebar .对于Elixir代码,我使用内置的 Mix 工具. 现在,我想拥有一个混合的Erlang/Elixir项目.我可以使用 rebar 编译 elixir 代码吗?或我可以使用混合编译 erlang 代码? 如果是这样,如何? 解决方案 如果将ERLANG文件放入src,则可以编译ERLANG文件.有一个rebar_elixir_plugin可以从钢筋编译长精灵代码,但它的效率不如混合.
12 2023-02-01
编程技术问答社区
螺纹钢无法从github获取依赖性
我无法使用Rebar获得GitHub的任何依赖性. rebar.config文件: {sub_dirs, ["rel"]}. {deps_dir, ["deps"]}. {erl_opts, [debug_info]}. {deps, [ {thrift_erl, "0.5.0", {git, "git://github.com/xslogic/thrift_erl", "HEAD"}}, {eleveldb, "1.0.1", {git, "git://github.com/xslogic/eleveldb", "HEAD"}} ]}. 当我做./rebar编译时,我得到了: Dependency not available: thrift_erl-0.5.0 ({git, "git://github.com/xslogic/thrift_erl",
34 2022-10-12
编程技术问答社区
在引导文件中不能扩展$ERTS_LIB_DIR
我使用rebar3创建了一个版本,但是我在远程服务器上运行/启动该应用程序 运行以下命令时: $> /home/app/releases/0.0.1# erl -boot start 我收到以下错误: {"init terminating in do_boot",'cannot expand $ERTS_LIB_DIR in bootfile'} init terminating in do_boot (cannot expand $ERTS_LIB_DIR in bootfile) Crash dump is being written to: erl_crash.dump...done 我在做什么错? 解决方案 您如何创建版本?如果您执行rebar3 as prod tar之类的操作,则将获得可以在服务器上扩展的.tar.gz,bin/APP用于启动/停止/附加. 如果您执行了rebar3 release之类的事情,它将构建到_build中,
50 2022-09-11
编程技术问答社区
如何使用rebar来创建一个带有eunit测试的erlang模块?
我的目标很简单;当我学习Erlang时,我想使用Rebar通过Eunit测试创建一个基本模块: 我尝试了以下内容: mkdir erlangscratch cd erlangscratch rebar create template=simplemod modid=erlangscratch 编辑'test/erlangscratch_tests.erl'看起来像这样: -module(erlangscratch_tests). -include_lib("eunit/include/eunit.hrl"). % This should fail basic_test_() -> ?assert(1 =:= 2). 执行测试: snowch@tp:~/erlangscratch$ rebar co eu ==> erlangscratch (compile) ==> erlangscratch (eunit) 未执行测试,但似乎也没有编译代码
72 2022-09-11
编程技术问答社区
如何构建和使用epgsql(erlang)。
我的erlang程序目录结构如下: src pgtest.erl lib epgsql rebar 我从 https://github.com/epgscl/epgsql/epgsql 下载了EPGSQL库 然后尝试使用make构建它,这给了我以下错误: make: rebar: Command not found make: *** [compile] Error 127 所以我从 https://github.com/basho/rebar 和构建和构建并建造它.它成功地构建了,并给了我消息. 恭喜!您现在有一个名为" rebar"的独立脚本 在 您当前的工作目录.将此脚本放在您的路径中 您可以使用Rebar构建符合OTP的应用程序. 因此,根据我的理解,我将rebar脚本从rebar目录复制到我的epgsql目录,然后尝试再次制作.但是,我有同样的错误.我知道我做错了,但不确定该怎么办? 解决方案 您可以在将命令定义为reb
36 2022-09-11
编程技术问答社区
Erlang (rebar?): 修正 "可能被两个不同的应用程序包含 "的错误
所以我需要构建 riak 来自Git Snapshot,(注意:还有最近的官方快照共享相同的问题). 在构建过程中,以下发生: Generating dev1 - node='dev1@127.0.0.1' yzsolrjmx=10013 yzsolr=10014 pbc=10017 http=10018 handoff=10019 (cd rel && ../rebar generate target_dir=../dev/dev1 overlay_vars=vars/dev1_vars.config) ==> rel (generate) ERROR: generate failed while processing /tmp/riak/rel: {'EXIT',{{badmatch,{error,"Module mochijson2 potentially included by two different applications: mochiweb and rabb
10 2022-09-11
编程技术问答社区
Erlang "Kernel pid terminated" 错误
我尝试使用RELX进行发布应用程序. Relx没有问题做到这一点.但是当我启动应用程序时,我有错误: {"Kernel pid terminated",application_controller," {application_start_failure,iqServer,{bad_return,{{iqServer_app,start,[normal,[]]}, {'EXIT',{undef,[{iqServer_app,start,[normal,[]],[]}, {application_master,start_it_old,4,[{file,\"application_master.erl\"}, {line,272}]}]}}}}}"} 我从错误中了解,我在函数iqServer:start/2中存在问题. start/2看起来像: -module(iqServer). -behaviour(application). -export([start/2,
28 2022-09-11
编程技术问答社区
在R16B02上,Rebar无法从源码编译/构建。
运行ERLANG R16B02(通过源安装并编译,ERL在路径上). 重新编译:src/rebar_utils 重新编译:src/rebar_xref rebar_core中的未误差:{'exit', {undef, [{crypto,start,[],[]}, {rebar,run_aux,2, [{file," src/rebar.erl"},{line,163}]}, {Rebar,Main,1, [{file," src/rebar.erl"},{line,58}]}, {erl_eval,do_apply,6, [{file," erl_eval.erl"},{line,569}]},}, {escript,eval_exprs,5, [{file," escript.erl"},{line,856}]}, {erl_eval,local_func,5, [{file," erl_eval.erl"},{line,467}]}, {Escript,解释,4, [{file
32 2022-09-11
编程技术问答社区
使用钢筋时,要盖上共同测试的报告
我有一个使用钢筋的ERLANG应用程序,并具有使用常见测试编写的测试.我想查看这些测试的测试覆盖报告,因此我在rebar.config文件中包括以下行: {cover_enabled, true}. 但是,公共测试报告中的"覆盖范围日志"链接仅导致一个页面上说"封面工具未使用".在进行测试时,我该如何使用封面工具并给我一个封面报告? 解决方案 cover_enabled rebar.config中的设置是必要的,但不足以激活覆盖报告进行常见测试.您还需要在应用程序的根目录中创建一个名为cover.spec的文件,其中包含: {incl_app, foo, details}. (替换您的申请名称foo.) 应该为您的申请提供封面报告.
20 2022-09-11
编程技术问答社区
配置Lager-I得到这个错误:未定义的解析变换'lager_transform'。
我正在测试此 https://github.com/saleyn/erws_example 在Windows&Ubuntu上) ==> erws_example (compile) src/erws_handler.erl:none: undefined parse transform 'lager_transform' ERROR: compile failed while processing /home/charles/erws_example: rebar_abort 我已经看到了这个建议 http://http://philipcristiano. com/com/2013/05/27/rebar-repentencies.html 到目前为止,我无法取得任何进展. 谢谢. 解决方案 似乎钢筋在编译其他所有内容之前似乎无法编译解析( https://github.com/basho/rebar/issues/270 ).解决方案是用Parse转换编
68 2022-09-11
编程技术问答社区
在rebar erlang应用中,应该把应用属性放在哪里?
一个新手问题:我写了我的第一个基于钢筋的Erlang应用程序.我想配置一些基本适当的诸如服务器主机等的基本适当位置等.将它们放置在哪里,以及如何将它们加载到应用中? 解决方案 下一步是制作释放并在其中创建一个节点.一个节点在独立的erlang vm中运行您的应用程序.使用Rebar创建发行版的好起点: 创建版本后.然后可以将节点中所有应用程序的配置属性添加到 {your-app}/{release}/files/sys.config 您可以按以下方式读取单个属性: Val = application:get_env(APP, KEY) 另外,您的应用程序的所有属性都可以读为 Config = application:get_all_env(APP) 在sys.config中,可以将属性添加为proplist. 示例: {myapp, [ {port, 1234}, {pool_size
34 2022-09-11
编程技术问答社区
在使用rebar3时,如何调试我的Eunit测试套件运行?
我已经创建了一个带有rebar3(beta-4)的release应用程序. 添加了一些EUNIT测试并编写了一些代码. 目前,我必须调试一个测试案例,以查看我必须添加的内容才能使实现正常工作. 我发现了一些有关使用Erlang Console的dbg的文章,我发现了如何从Eunit撰写调试信息.但是我需要从必须测试的代码中获取信息(实际实现(逻辑)). 当rebar3与eunit参数一起使用时,是否有一种方法可以调试ERLANG代码(实际源代码,而不是测试一号)? ? 我在终端中使用跟踪: https:https:https:https:https:https:https:https:https:https://aloiroberto.wordpress.com/2009/02/23/tracing-erlang-functions/ 解决方案 这样做的一种方法是使用rebar3在测试配置文件下运行外壳,然后启动调试器并设置断点等等: $ rebar3
30 2022-09-11
编程技术问答社区
埃尔朗。Mnesia无法在使用rebar发布时创建模式
当我致电Mnesia:create_schema on Startup上时,程序崩溃. 如果我在Ebin中运行我的程序而不发布该程序,则可以找到它. 错误日志如下: =INFO REPORT==== 3-Jul-2013::09:44:06 === application: eddy exited: {bad_return, {{eddy_app,start,[normal,[]]}, {'EXIT', {{badmatch, {error, {'EXIT', {undef, [{mnesia_backup,open_write, ["/home/cometeor/eddy/rel/eddy/Mnesia.eddy@127.0.0.1/eddy@127.0.0.113728
22 2022-09-11
编程技术问答社区
运行rebar eunit时将运行时参数传递给erlang
在我的启动脚本中,我正在以: 开始Erlang erl -args_file vm.args 当前,在尝试使用rebar eunit运行单元测试的同时,我有没有办法将自定义运行时参数(例如-args_file选项)传递给Rebar启动的ERLANG进程?我已经搜索了高和低至无济于事的文档... 我感谢帮助. 解决方案 我回答了自己的问题.我使用erl_flags变量通过命令行args.这是我的makefile的片段: ERL_FLAGS="-args_file test/conf/vm.eunit.args" ./rebar skip_deps=true eunit 其他解决方案 第一种方法对您的限制感到满意: 1.在您的Eunit测试功能中,使用Erlang的"os:cmd("erl -name bar -detached arguments")."启动另一个Erlang节点.在论点中,您可以插入任何想要的内容.但是Eunit的检查将很困难,因为测试会
18 2022-09-11
编程技术问答社区
命令'生成'不理解或不适用
我正在尝试运行Rebar生成,以生成Erlang Rebar项目的发行版并获得以下错误.有什么想法我做错了什么? ./rebar generate Command 'generate' not understood or not applicable 我在OSX上使用Erlang版本Erlang R14B03及以下是我的Rebar.conf {lib_dirs, ["deps"]}. {sub_dirs, ["rel"]}. {deps, [ {folsom, ".*", {git, "git://github.com/boundary/folsom", "master"}} ]}. {require_otp_vsn, "R14|R15"}. {erl_opts, [ fail_on_warning, debug_info, warn_missing_spec
34 2022-09-11
编程技术问答社区