[라즈베리파이] Lazarus Indy 컴포넌트 설치 및 사용

    728x90

    안녕하세요

    로로봉입니다 : )

    프로그램 개발을 하다보면 통신부분은 꼭 필요합니다.

    다양한 프로그램들과 데이터를 주고 받으며 처리할 수 있는 일들이 무궁무진하기 때문입니다.

    Lazarus에서는 UDP/IP 및 TCP/IP 통신을 사용하기 위해 Indy Components를 사용하면 간편하게 네트워크 통신이 가능합니다.

    이번 포스팅은 Lazarus에 Indy 컴포넌트를 설치하는 방법을 알아보도록 하겠습니다.

    우선 아래 사이트에서 Lazarus용 Indy 컴포넌트를 다운받아주어야 합니다.

     

    Indy

    Indy 10 Lazarus/FreePascal PortAbout This Effort This is an effort to make Indy 10 work in FreePascal using the Lazarus IDE while supporting Borland Delphi in the same code base.  Our goals are to support in Linux and other operating systems including var

    ww2.indyproject.org

    스크롤을 내리면 Unix/Linux system users로 되어 있는 indy-10.2.0.3.tar.gz 파일이 있습니다.

    눌러서 다운받아 줍니다.

    [ 그림 1 ] - Indy 컴포넌트 사이트
    [ 그림 2 ] - Indy 컴포넌트 다운로드

    저장을 하시면 다운로드 폴더에 Indy-10.2.0.3.tar.gz 파일이 다운된 것을 볼 수 있습니다.

    [ 그림 3 ] - 다운로드 폴더

    아래와 같이 터미널을 열어 다운받은 압축 파일을 /usr/lib/lazarus/1.8.2/components 폴더에 풀어줍니다.

    [ 그림 4 ] - 압축 해제
    [ 그림 5 ] - 압축 해제 완료

    indy 컴포넌트 설치에 앞서 Lazarus를 실행하고 다음 lazcontroldsgn.lpk 파일을 열어줍니다.

    indy 컴포넌트를 컴파일 하는 과정에서 오류가 발생할 수 있기 때문에 lazcontroldsgn.lpk 패키지 인스톨을 먼저 해야합니다.

    [ 그림 6 ] - Lazarus 파일 오픈
    [ 그림 7 ] - lazcontroldsgn.lpk 경로

    lazcontroldsgn.lpk 파일을 열면 아래 경고창이 표시됩니다. Open package를 눌러 패키지를 열어줍니다.


    [ 그림 8 ] - 패키지 오픈 알림

    Compile을 눌러 패키지를 컴파일 해줍니다.

    [ 그림 9 ] - LazControlDsgn 패키지 컴파일
    [ 그림 10 ] - LazControlDsgn 컴파일 메시지 창

    Use - Install 을 눌러 패키지를 설치해줍니다.Rebuild 하여 Lazarus가 재시작되도 되는지 확인창이 표시됩니다.

    예를 눌러 Install을 진행합니다.

    [ 그림 11 ] - 패키지 Install 알림창

    Install이 다 되면 Lazarus가 종료됩니다.

    [ 그림 12 ] - 패키지 설치 완료

    indy 컴포넌트 설치에 앞서 방금전 설치한 결과 파일들을 옮겨주는 작업을 해야합니다.

    아래와 같이 터미널을 열어서 홈디렉토리의 .lazarus 폴더에 생성된 LazControlDsgn에 대한 lib 파일들을 Lazarus 컴포넌트 파일로 옮겨 주어야 됩니다.

    [ 그림 13 ] - LazControlDsgn lib 파일 이동

    그리고 indy 컴포넌트가 컴파일 될 때 메모리 스택 사이즈에 대한 오류가 발생하기도 하여 아래와 같이 터미널에서 메모리 스택사이즈를 늘린 상태에서 Lazarus 프로그램을 실행시켜줍니다.

    [ 그림 14 ] - 메모리 스택 Limit 사이즈 증가

    터미널창을 닫으면 다시 8192로 돌아가기 때문에 65535로 설정 후에 터미널 창을 닫지 않고 Lazarus를 실행해줍니다.

    이제 본격적으로 indy 컴포넌트를 설치하기 위해 Lazarus에서 indylaz.lpk 파일을 열어줍니다.

    [ 그림 15 ] - indylaz.lpk 파일 경로

    Open package를 눌러 패키지를 열어줍니다.

    [ 그림 16 ] - 패키지 파일 오픈 알림창

    패키지 파일이 열리면 컴파일 하기 전에 Options를 먼저 눌러줍니다.

    [ 그림 17 ] - indylaz 패키지 패키지 창

    Compiler Options - Paths를 선택하고 Other unit files(-Fu) 입력창에 indy 컴포넌트 폴더의 fpc 폴더를 지정해줍니다.


    [ 그림 18 ] - Compiler Options 설정

    OK 버튼을 눌러 컴파일 옵션 설정을 완료해줍니다. 이제 패키지에서 컴파일을 해주시면 됩니다.

    [ 그림 19 ] - indylaz 컴파일
    [ 그림 20 ] - indylaz 컴파일 메시지 창

    컴파일이 완료되면 Use - Install을 눌러 indy 컴포넌트를 설치해줍니다.

    [ 그림 21 ] - indylaz 패키지 Install

    위의 패키지 설치와 동일하게 재시작하겠냐는 알림창이 뜨면 예를 눌러 Install을 진행해줍니다.

    [ 그림 22 ] - 재시작 알림창

    설치가 완료되면서 Lazarus가 종료됩니다.

    이제 다시 Lazarus를 실행하여 프로젝트에서 컴포넌트를 검색해보면 TIdTCPClient와 같이 Indy 컴포넌트가 검색되는 것을 볼 수 있습니다.

    [ 그림 23 ] - 컴포넌트 검색

    폼에다 TIdTCPClient를 올려두고 컴파일하게 되면 오류가 발생합니다.

    [ 그림 24 ] - 컴파일 오류

    오류가 발생하는 원인은 Indy 컴포넌트에 대한 파일을 찾지 못하기 때문입니다.

    해당 프로젝트의 컴파일 옵션에 indy 컴포넌트 fpc 폴더를 설정해주면 됩니다.

    Project - Project Options를 선택해 줍니다.

    [ 그림 25 ] - Project Options 선택

    Compiler Options - Paths를 선택하고 indy 컴포넌트의 fpc 폴더를 입력해주거나 선택해줍니다.

    [ 그림 26 ] - 컴파일러 옵션 1

    다음으로는 Custom Options를 선택하고 Custom options 안에 -dUseCThreads를 작성하고 OK를 눌러줍니다.

    [ 그림 27 ] - 컴파일러 옵션 2

    위와 같이 컴파일러 옵션 1,2를 해주고 컴파일 하게 되면 프로그램이 잘 실행되는 것을 볼 수 있습니다.

    Custom Options에 -dUseCThreads 옵션을 입력하지 않으면 TCP/IP 통신을 하는 과정에서 오류가 발생합니다.

    [ 그림 28 ] - 컴파일 성공

     

    좋아요♥ + 구독 부탁드립니다 : )

    728x90
    반응형

    댓글