Skip to the content.
English 한국어 日本語 Tiếng Việt

Erlang 예제

https://github.com/bobhyun/TS-ANPR/tree/main/examples/Erlang/anpr

1. 엔진 파일 복사

[참고] 이 예제에서는 다른 예제들과 공유하기 위해 엔진 파일을 examples/bin/ 디렉토리에 압축 해제합니다. 하지만 실제 배포 시에는 일반적으로 애플리케이션의 실행 파일이 위치한 디렉토리에 엔진 파일을 복사합니다.

2. 사전 요구사항

  1. Erlang/OTP 설치 (버전 24 이상 권장)

    Windows:

    # https://www.erlang.org/downloads 에서 다운로드
    # 또는 Chocolatey 사용
    choco install erlang
    

    Linux:

    # Ubuntu/Debian
    sudo apt-get update
    sudo apt-get install -y erlang
    
    # Oracle Linux / RHEL / CentOS (8/9+)
    sudo dnf install -y erlang || sudo yum install -y erlang
    # 팁: 패키지가 없으면 EPEL 활성화 또는 Erlang Solutions 저장소 사용:
    # https://www.erlang.org/downloads
    
    # 또는 kerl 사용 (권장)
    curl -O https://raw.githubusercontent.com/kerl/kerl/master/kerl
    chmod a+x kerl
    ./kerl build 24.3 24.3
    ./kerl install 24.3 ~/erlang/24.3
    # 현재 셸에 활성화
    . ~/erlang/24.3/activate
    # 비활성화: deactivate
    
  2. rebar3 설치

    Windows:

    GitHub에서 최신 rebar3 escript 다운로드:

    # 최신 rebar3 다운로드 (Erlang/OTP 28+ 호환)
    Invoke-WebRequest -Uri "https://github.com/erlang/rebar3/releases/latest/download/rebar3" -OutFile "rebar3"
       
    # rebar3를 프로젝트 디렉토리에 배치하거나 PATH의 디렉토리로 이동
    

    참고: Windows에서는 escript rebar3 <명령어> 형식으로 실행해야 합니다 (rebar3 <명령어>가 아님).

    Linux:

    # Ubuntu/Debian
    sudo apt-get install rebar3
       
    # 또는 GitHub에서 최신 버전 다운로드
    wget https://github.com/erlang/rebar3/releases/latest/download/rebar3
    chmod +x rebar3
    sudo mv rebar3 /usr/local/bin/
    
  3. C 컴파일러 설치 (NIF 빌드에 필요)

    Windows:

    • C++ 개발 도구가 포함된 Visual Studio 설치, 또는
    • MinGW-w64 설치: choco install mingw

    Linux:

    # Ubuntu/Debian
    sudo apt-get install build-essential
    
    # Fedora/CentOS
    sudo yum groupinstall "Development Tools"
    
  4. 설치 확인

    erl -version
    rebar3 version
    gcc --version  # Windows에서 Visual Studio 사용 시 cl.exe
    

3. 빌드 및 실행

  1. Erlang 예제 디렉토리로 이동

    cd examples/Erlang/anpr
    
  2. NIF (Native Implemented Function) 라이브러리 빌드

    Windows:

    “x64 Native Tools Command Prompt for VS”를 열거나 vcvars64.bat를 실행한 후:

    build_nif.bat
    

    다음을 수행합니다:

    • Erlang 설치 자동 감지
    • MSVC를 사용하여 c_src/tsanpr_nif.c 컴파일
    • priv/tsanpr_nif.dll 생성

    Linux:

    make priv/tsanpr_nif.so
    

    다음을 수행합니다:

    • gcc를 사용하여 c_src/tsanpr_nif.c 컴파일
    • libdl을 적절히 링크하여 priv/tsanpr_nif.so 생성
  3. Erlang 애플리케이션 빌드

    Windows (escript 명령어 사용):

    escript rebar3 compile
    

    Linux:

    rebar3 compile
    

    다음을 수행합니다:

    • Erlang 모듈(anpr.erl, tsanpr.erl)을 _build/default/lib/anpr/ebin/로 컴파일
    • priv/의 NIF 라이브러리를 _build/default/lib/anpr/priv/로 복사
  4. 애플리케이션 실행

    # 비대화형 모드
    erl -pa _build/default/lib/anpr/ebin -noshell -eval "anpr:main()" -s init stop
    
    # 대화형 모드
    erl -pa _build/default/lib/anpr/ebin
    1> anpr:main().
    

4. 참고사항

5. 기능

6. API 참조

tsanpr 모듈

tsanpr 모듈은 다음 함수들을 제공합니다:

초기화:

핵심 함수:

인식 옵션

출력 형식

7. 문제 해결

라이브러리 로딩 문제:

NIF 문제:

플랫폼별 문제: