erlang 顺序编程-编译和运行程序07

本文介绍了Erlang的编译和运行过程,包括如何在运行时系统中添加路径、通过makefile模板编译模块,以及多种运行Erlang程序的方式,如在Erlang shell、操作系统命令行、sh脚本和escript。同时,讲解了主目录的位置查询和.erlang文件的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译和运行程序

Erlang的运行时系统使用一种代码自动载入机制

找到当前的载入路径值。

%% shell
code:get_path().

添加新路径

%% 在开头添加新路径
code:add_patha(Dir).

%% 在末尾添加新路径
code:add_pathz(Dir).

加载模块的总列表

code:all_loaded().

查询出错

code:clash().

启动添加路径 -pa 在前面添加,pz在后面添加

erl -pa Dir1 -pa Dir2 ... -pz DirK1 -pz DirK2

一般是把需要添加的路径放在主目录的 .erlang 文件内

这个文件可以添加erlang代码。启动时优先读取

查询主目录位置

init:get_argument(home).

运行程序的不同方式

模块 hello.erl

-module(hello).
-export([start/0]).

start() -> io:format("Hello world~n").

​​​​​​1、Erlang shell 里编译运行

erl

c(hello).

hello:start().

%% 或者:
erlc hello.erl
erl -noshell -s hello start -s init stop

2、在操作系统内执行erlang函数

erl -eval 'io:format("Memory: ~p~n",[erlang:memory(total)]).'\
    -noshell -s init stop

3、同过linux sh脚本启动 ,-pa后面接的是代码hello.beam文件所在目录的绝对路径

#!/bin/sh 
erl -noshell -pa /home/joe/Book/code -s hello start -s init stop

4、escript 运行

#!/usr/bin/env escript
main([A]) ->
    I = list_to_integer(A),
    F = fac(I),
    io:format("factorial ~w = ~w~n",[I,F]).

fac(0) -> 1;
fac(N) -> N * fac(N-1).

%% 结果 ./factorial 35
%% factorial 25 = 1551121004330985984000000

makefile模板

MODS清单里的任何模块都会用Erlang命令erlc Mod.erlMod是模块名)编译。

精简模板

.SUFFIXES: .erl .beam

.erl.beam:
    erlc -W $<

    ERL = erl -boot start_clean

    MODS = modulel module2 module3
    all : compile
        ${ERL} -pa '/home.../this/dir' -s modulel start

    compile: ${MODS:%=%.beam}

    clean:
        rm -fr *.beam erl_creash.dump

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值