在 Erlang 中,如何从模块内部编译模块?
我已经尝试过::
c(module_name).
但这只能在外壳程序中工作,并且当我尝试从模块内运行它时会出现错误。
I have tried :
c(module_name).
: but this only works from the shell, and gives an error when I try to run it from within a module.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您确实想要这种行为,
c:c(module_name)
将调用 shell 调用的相同函数。我会犹豫是否将调用 user_default (c
) 函数的代码放入生产代码中,因此您可能需要查看 函数的源代码 并将其复制到您自己的代码中,这样您就不会受到行为更改的影响未来的 Erlang 版本。If you want exactly that behaviour,
c:c(module_name)
will call the same function called by the shell. I would hesitate to put code that calls user_default (c
) functions in production code, so you might want to look at the source for the function and replicate it in your own code so you don't get bitten by a behaviour change in a future erlang release.您可能想具体查看compile 模块和compile:file/2 函数。
You might want to have a look to the compile module and to the compile:file/2 function in specific.