| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 건담
- snes
- 패미컴
- steam
- 게임보이
- 오블완
- ensemble
- 앙상블
- 슈퍼패미컴
- Game Gear
- 슈퍼마리오
- 새턴
- PC게임
- fpga
- MSX
- GOG
- appleii
- ps4
- 닌텐도스위치
- Saturn
- mobilesuit
- 티스토리챌린지
- 메가드라이브
- PC엔진
- mister
- 3DS
- Apple II
- 컨트롤러
- 게임기어
- 모빌슈트
- Today
- Total
Just a Blog
Linux용 Lazarus 설치 및 시험 사용 본문
Linux 데스크탑용 GUI 어플리케이션을 만들려면 어떤 방법이 있을까? 데스크탑 환경이 GNOME이냐 KDE냐에 따라 다를 수 있겠고, gtk 라이브러리를 사용하느냐 qt 라이브러리를 사용하느냐에 따라 다를 수 있겠으며, 아니면 그냥 옛날 X11 프로그래밍을 할 수도 있을 것이다.
얼마전 예전에 보던 Borland C++ Builder 참고서적을 다시 보게 되었는데, 과거 C++ Builder나 Delphi와 비슷한 방식으로 Linux에서 Borland Kylix를 사용하여 GUI 프로그램을 만들던 기억이 떠올랐다. Kylix 같이 익숙한 환경이면 Linux에서도 GUI 어플리케이션을 편리하게 만들 수 있을 것 같았다. 마침 예전에 사용하던 Kylix 실행 파일을 찾을 수 있어서 혹시나 하고 Ubuntu 20.04에서 설치를 시도해 보았는데, 역시나 기반 라이브러리 때문에 바로 실행이 어려웠다.
'하지만 Lazarus라면 아직도 잘 동작하겠지?'하는 생각이 갑자기 들어 그 다음으로 Lazarus를 설치해 보았다. Ubuntu 20.04의 APT로 설치하니 버전 2.0.6이 설치되었지만, 홈페이지에 가니 이 글의 작성 시점에 Lazarus 버전이 4.2이고 FPC(Free Pascal Compiler) 버전이 3.2.2이다.

Linux에서 Lazarus를 꽤 오랜만에 사용해 보게 되었다. IDE 스타일이 여전히 과거 Borland의 Delphi 또는 C++ Builder와 유사하여 반가웠는데, Ubuntu의 기본 GNOME 환경과 테마에서 글자가 잘 안 보이는 상황들이 보이기는 했다(다크 테마에서의 붉은 글자들이 잘 보이지 않는다거나, property 항목의 리스트박스 안 글자가 잘려서 보이는 등).

Linux 환경에서도 한글 처리는 생각보다 잘 되어서 있었다. 컴포넌트들 외부의 한글 표시는 물론, TMemo 컴포넌트 등에서 한글 입력도 원만하게 처리되는 것을 확인했다.

이 도구를 사용하면 앞서 언급했던 'Linux 환경에서 GUI 프로그램 만들기'가 상당히 편해질 것 같다는 생각이 들었다. 최소한의 코딩과 Form 위에 컴포넌트를 배치하는 것만으로, 대충 텍스트 에디터 비슷한 외형의 어플리케이션을 만들 수 있었다(그리고 만들어진 실행파일을 다른 Ubuntu Linus 설치 기기에 옮겨서 실행해 봤는데 잘 동작했다).

이 개발도구를 사용했을 때의 문제는 (과거에도 느꼈지만) Object Pascal 문법의 압박이다. 개인적으로 C 언어보다 먼저 학습했던 언어가 Pascal 언어였지만(그 때는 '터보 파스칼 프로그래밍 500제' 같은 책도 보았는데...), Delphi를 사용하던 시절에도 Object Pascal 문법은 여러 모로 부담스러웠다. Pascal 언어를 보지 않은지 20년도 더 된 것 같은 지금의 부담감은 더 하다. 컴포넌트에 대한 event 처리 등은 어찌어찌 한다고 해도, 어플리케이션 안의 자료구조를 만들고 주요 로직을 구현하는데 Pascal을 쓴다는 것이 쉽지 않을 것 같다. Reddit 같은 곳에 간혹 'Lazarus를 C++ Builder처럼 C++ 기반으로 만들 수 없는지'를 묻는 글을 볼 수 있었는데, 그에 대한 대답은 부정적인 것으로 보인다.
