LazarusCompleteGuide:3.3

From 흡혈양파의 번역工房
Jump to navigation Jump to search

IDE를 재컴파일하기

IDE는 스스로 재생성할 수 있다. SVN 저장소를 이용해 라자루스 소스를 다운로드했다면 SVN 업데이트를 이용해 현재까지 소스에 대한 복사본을 보관할 수 있을 것이다. 그리고 나서 기능에서 최근 변경내용을 보려면 그 전에 라자루스를 재빌드해야 할 것이다 (라자루스 SVN 저장소는 소스 코드만 포함한다). IDE를 재빌드하는 또 다른 이유는 패키지를 설치하기 위해서이다. 라자루스는 현재 정적 패키지만 지원하므로 새 패키지가 설치될 때마다 IDE를 재컴파일해야 한다.


다중 위젯 셋을 가진 운영체제를 이용 중이라면 다른 위젯 셋에 대해 IDE를 컴파일할 것이다.


사용자는 라자루스가 모든 위젯 셋에 동일하게 지원하지는 않음을 유념할 필요가 있다. 예를 들어, 개발자들이 전반적으로 Gtk 위젯 셋 개발에 많은 시간을 투자한 반면 Mac OS X에서 Cocoa는 개발 시작 단계일 뿐이다. 라자루스는 크로스 컴파일을 지원하기 때문에 사용자는 IDE에 가장 안정적인 위젯 셋을 선택해야 한다. 이는 Tools→Build Lazarus with profile: xyz를 통해 시작할 수 있다.


승인 대화창이 닫히면 라자루스는 xyz 설정에 따라 재빌드된다. 오류가 발생 시 프로세스를 중단할 수도 있는데, 오류의 가장 공통된 원인은 파일의 다중 버전 때문이다. 만일 이 때문이라면 Tools ⇒ Configure "Build Lazarus" 메뉴의 Clean Up 옵션이 도움이 될 것이다.


그림 3.102: Tools→Build Lazarus로 호출 이후 표시되는 라자루스를 재빌드 승인 창


사용자는 라자루스 재빌드를 위한 여러 설정을 구성할 수 있다. 해당 설정은 Tools ⇒ Configure "Build Lazarus"... 의 Configure "Build Lazarus" 대화창에서 찾을 수 있다. 해당 대화창에는 사전에 정의된 빠른 빌드 옵션들이 포함되어 있지만 모든 설정을 수동으로 구성하는 것도 가능하다.

그림 3.103: Tools ⇒ Configure "Build Lazarus"를 통해 접근한 Configure "Build Lazarus" 대화창


Profile to build combobox 는 초보자를 위해 설계되었으며, 몇 가지 기본적 프리셋 옵션들을 제공한다.


콤보상자를 끌어내리면 아래의 재빌드 조합들과 방법들이 표시된다:

  • BuildLCL: LCL만 재컴파일된다.
  • Build IDE with packages: 모든 설치된 패키지와 함께 IDE가 재빌드된다.
  • Build IDE without packages: IDE만 재빌드된다.
  • Build All: 모두 재컴파일한다.
  • Clean up+Build All: 재빌드 전에 불필요한 모든 파일이 삭제된다 (예: 재생성될 .ppu 파일). 이후에 모두 재컴파일된다.


[...]생략부호 버튼을 누르면 자신만의 프리셋 조합을 리스트에 추가할 수 있는 대화창이 열린다.


사용자는 재빌드해야 할 위젯 셋을 LCL widget type 콤보상자에서 설정한다. 대부분 운영체제에선 다중 위젯 셋을 이용할 수 있다. 추가 위젯 셋에 필요한 라이브러리를 이용할 수 있도록 확실히 해야 한다. 예를 들어, 윈도우에서 Qt-4 라이브러리를 준비하지 않고 Qt 위젯 셋을 선택하는 것은 말이 안 된다. 또한 모든 위젯 셋이 같은 개발 수준에 있지는 않음을 유념해야 한다. 현재는 아래 위젯 셋을 이용할 수 있다.

위젯 셋 라자루스에서 현재 상태
Gtk 안정적 상태이나 구식
Gtk 2 베타 상태, 하지만 라자루스 0.98 이후부터 Linux와 FreeBSD에서 기본 값
Win32/Win64 안정적 상태
WinCE 베타 상태
Carbon 베타 상태
Qt 알파 상태
fpGUI 실험상태
NoGUI 실험상태
Cocoa 실험상태
표 3.6: 이용 가능한 위젯 셋


안정 상태가 아닌 위젯 셋 몇몇은 최신 FPC 버전에 의존한다 (SVN을 통해 이용 가능). FPC 안정 버전을 이용 시 (보통은 오래된 버전) 컴파일이 hang으로 이어질 수 있는데, 필요한 파일을 찾을 수 없기 때문일 가능성이 높다. 라자루스 설치 시와 동일한 사용자 권한을 이용할 수 있는 위젯 셋을 전환할 때는 조심해야 한다. 예를 들어, 패키지 관리자를 이용해 라자루스를 리눅스에 설치한 경우 루트 권한이 필요하다 (패킷 관리자의 시작 시 루트 비밀번호를 입력해야 함). 일반적으로 리눅스에서 사용자는 루트 사용자로 작업하지 않기 때문에 위젯 셋 변경에 실패할 것인데, 라자루스 디렉터리에 필요한 권한이 누락되었기 때문이다.


이러한 경우 해결책은 sudo 명령을 이용해 라자루스를 시작하는 방법이다. 하지만 이 방법 또한 모든 유닉스 시스템에서 작동하는 것은 아닌데, 그 이유는 X-호스트가 현재 계정 외 다른 계정을 사용할 만큼 항상 여유 있는 것이 아니기 때문이다. 따라서 IDE가 X-호스트로 연결할 수 없다면, 현재 X-서버를 시작한 계정은 콘솔 창에 xhost+ 명령을 실행해야 한다.

그림 3.104: 5개의 사전 정의된 Profile to Build 옵션을 표시하는 Configure "Build Lazarus" 대화창


라자루스는 아래의 부분들로 구성된다:

  • LCL: 라자루스 컴포넌트 라이브러리와 현재 위젯 셋. LCL은 TButton이나 TForm과 같은 시각적 컴포넌트를 포함한다. 비시각적 컴포넌트는 LCL에 속하진 않으나 프리 파스칼 라이브러리에서 제공된다 (FCL 또는 RTL).
  • 패키지 등록: 모든 라자루스 패키지에서 사용하는 기본적 패키지 유닛을 포함한다.
  • IDE Interface: IDEIntf 패키지. IDE를 확장하는 각 런타임 패키지는 해당 인터페이스 패키지를 포함해야 한다.
  • SynEdit: IDE가 필요로 하는 소스 코드 에디터 컴포넌트이다. 시각적 컴포넌트 TSynEdit와 하이라이터를 포함한다.
  • CodeTools: 소스 코드의 분석과 편집을 위한 코드 집합체이다.
  • IDE: 위를 제외한 나머지 IDE.
  • Example(예제): 예제 디렉터리에 위치한 단순한 데모. 좀 더 복잡한 데모와 예제는 예제 아래의 여러 하위디렉터리에 위치한다.
  • Starter: IDE가 재컴파일 시 재시작하는 애플리케이션 startlazarus.


이 부분들은 순서대로 되어 있다. 즉, LCL을 재빌드할 때는 그 아래 모든 부분들도 재빌드되어야 함을 의미한다. 각 부분은 라디오버튼으로 각각 제어할 수 있다:


None (좌측열, 컴파일 없음), Build (중간열, 컴파일), Clean+Build (우측열, 클린업 후 컴파일).


LCL Interface 는 라자루스의 컴파일에만 관련되며 (LCL를 포함) 다른 모든 IDE 특징들은 프로젝트 메뉴에 컴파일러 설정들을 사용한다.


Clean all 를 활성화하면 컴파일에 필요하지 않은 모든 파일을 삭제한다 (.ppu 파일과 같은). 특히 위젯 셋을 변경할 때 해당 옵션을 활성화해야 한다. 설치된 패키지를 IDE와 함께 재빌드해야 한다면 With packages 를 활성화한다.


사용자는 Options 필드를 이용해 컴파일러로 파라미터를 전달할 수 있다. 이는 OPT 컴파일러 스위치로 명령 행에 추가된다. 예를 들어, 라자루스를 수정부(revision) 21913까지 Qt 위젯 셋용으로 컴파일해야 할 경우, -dUse_QT_45 파라미터는 전달되어야 한다 (Qt-버전 4.5). 많은 파라미터들은 여전히 실험적 문자를 가지고 있으므로 효능을 항시 보장할 수는 없음을 명심한다. 설정의 영향을 받는 라자루스 컴포넌트는 컴파일 후 변경내용을 활성화하기 위해 상단 부분에 있는 Clean으로 설정해야 한다.


크로스컴파일을 위해선 Target OS를 해당 이름의 필드에 설정할 수 있다. 목표 OS에 필요한 라이브러리와 모든 컴파일된 binutil이 존재해야 한다. 컴파일이 다른 CPU을 목표로 하는 경우, 이 CPU는 Target CPU로 설정되어야 한다. IDE를 다른 디렉터리로 컴파일하려면 이 디렉터리는 Target directory로 설정해야 한다. 해당 설정은 IDE에만 영향을 미치며, 라자루스의 다른 부분들에는 적용되지 않는다. 라자루스 재빌드가 성공하면 Restart after building IDE 확인상자를 활성화하여 자동 재시작을 명령할 수 있다. 변경내용은 재시작 후에만 효과가 나타난다. 컴파일러 출력 메시지를 연구하고 싶다면 해당 옵션을 취소해야 하는데 보통은 활성화된 채로 유지된다.


Confirm before build 를 활성화하면 재시작 전에 승인을 요한다.


Build 를 클릭하면 설정이 저장되고 재빌드가 시작된다. 추후에 재빌드를 실행할 것이라면 Save settings 버튼으로 변경된 설정을 저장할 수 있다. Cancel 버튼은 모든 변경내용을 취소하고 대화창을 닫는다.


재빌드가 완전히 잘못되어 IDE가 더 이상 응답하지 않는다면 어떤 선택권이 있을까?


우선 콘솔을 시작하고 라자루스 디렉터리로 가야 한다. 명령 행 make clean all을 이용해 최소 IDE를 빌드하여 새로운 시작을 할 수 있다. (윈도우에서 라자루스의 make.exe 는 PATH 환경 변수에서 다른 모든 make 실행 파일보다 앞에 위치해야 한다.) 이전에 설치된 패키지들은 현재 이용할 수 없지만 설치를 위해 표시되어 있다. Build Lazarus 는 표시된 패키지들을 포함하며, 새로 시작한 이후 통합한다. 새 패키지의 설치로 인해 문제가 발생할 경우 일반적으로는 패키지를 제거하면 문제가 해결될 것이다.