[라즈베리파이] Lazarus Indy 컴포넌트 설치 및 사용
안녕하세요
로로봉입니다 : )
프로그램 개발을 하다보면 통신부분은 꼭 필요합니다.
다양한 프로그램들과 데이터를 주고 받으며 처리할 수 있는 일들이 무궁무진하기 때문입니다.
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 파일이 있습니다.
눌러서 다운받아 줍니다.
저장을 하시면 다운로드 폴더에 Indy-10.2.0.3.tar.gz 파일이 다운된 것을 볼 수 있습니다.
아래와 같이 터미널을 열어 다운받은 압축 파일을 /usr/lib/lazarus/1.8.2/components 폴더에 풀어줍니다.
indy 컴포넌트 설치에 앞서 Lazarus를 실행하고 다음 lazcontroldsgn.lpk 파일을 열어줍니다.
indy 컴포넌트를 컴파일 하는 과정에서 오류가 발생할 수 있기 때문에 lazcontroldsgn.lpk 패키지 인스톨을 먼저 해야합니다.
lazcontroldsgn.lpk 파일을 열면 아래 경고창이 표시됩니다. Open package를 눌러 패키지를 열어줍니다.
Compile을 눌러 패키지를 컴파일 해줍니다.
Use - Install 을 눌러 패키지를 설치해줍니다.Rebuild 하여 Lazarus가 재시작되도 되는지 확인창이 표시됩니다.
예를 눌러 Install을 진행합니다.
Install이 다 되면 Lazarus가 종료됩니다.
indy 컴포넌트 설치에 앞서 방금전 설치한 결과 파일들을 옮겨주는 작업을 해야합니다.
아래와 같이 터미널을 열어서 홈디렉토리의 .lazarus 폴더에 생성된 LazControlDsgn에 대한 lib 파일들을 Lazarus 컴포넌트 파일로 옮겨 주어야 됩니다.
그리고 indy 컴포넌트가 컴파일 될 때 메모리 스택 사이즈에 대한 오류가 발생하기도 하여 아래와 같이 터미널에서 메모리 스택사이즈를 늘린 상태에서 Lazarus 프로그램을 실행시켜줍니다.
터미널창을 닫으면 다시 8192로 돌아가기 때문에 65535로 설정 후에 터미널 창을 닫지 않고 Lazarus를 실행해줍니다.
이제 본격적으로 indy 컴포넌트를 설치하기 위해 Lazarus에서 indylaz.lpk 파일을 열어줍니다.
Open package를 눌러 패키지를 열어줍니다.
패키지 파일이 열리면 컴파일 하기 전에 Options를 먼저 눌러줍니다.
Compiler Options - Paths를 선택하고 Other unit files(-Fu) 입력창에 indy 컴포넌트 폴더의 fpc 폴더를 지정해줍니다.
OK 버튼을 눌러 컴파일 옵션 설정을 완료해줍니다. 이제 패키지에서 컴파일을 해주시면 됩니다.
컴파일이 완료되면 Use - Install을 눌러 indy 컴포넌트를 설치해줍니다.
위의 패키지 설치와 동일하게 재시작하겠냐는 알림창이 뜨면 예를 눌러 Install을 진행해줍니다.
설치가 완료되면서 Lazarus가 종료됩니다.
이제 다시 Lazarus를 실행하여 프로젝트에서 컴포넌트를 검색해보면 TIdTCPClient와 같이 Indy 컴포넌트가 검색되는 것을 볼 수 있습니다.
폼에다 TIdTCPClient를 올려두고 컴파일하게 되면 오류가 발생합니다.
오류가 발생하는 원인은 Indy 컴포넌트에 대한 파일을 찾지 못하기 때문입니다.
해당 프로젝트의 컴파일 옵션에 indy 컴포넌트 fpc 폴더를 설정해주면 됩니다.
Project - Project Options를 선택해 줍니다.
Compiler Options - Paths를 선택하고 indy 컴포넌트의 fpc 폴더를 입력해주거나 선택해줍니다.
다음으로는 Custom Options를 선택하고 Custom options 안에 -dUseCThreads를 작성하고 OK를 눌러줍니다.
위와 같이 컴파일러 옵션 1,2를 해주고 컴파일 하게 되면 프로그램이 잘 실행되는 것을 볼 수 있습니다.
Custom Options에 -dUseCThreads 옵션을 입력하지 않으면 TCP/IP 통신을 하는 과정에서 오류가 발생합니다.
좋아요♥ + 구독 부탁드립니다 : )