개요
우여곡절 끝에 Windows 95용 어플을 만들일이 있어서, 여러 윈도우 어플 개발 도구를 조사하던 중에, 오픈 소스인 Lazarus가 끌려서 Lazarus의 크로스 컴파일링을 통하여 Windows 95용 어플 제작에 실패한 기록을 남겨 둡니다.
부디 저와 같은 실패를 오래 겪지 않았으면 합니다. ^^;
Lazarus 크로스 컴파일
Lazarus는 공식 사이트 (https://www.lazarus-ide.org/)에서 손쉽게 다운로드 받아서 설치할 수 있습니다.
대부분 기본적으로 사용하는 OS가 64bit 여서 Lazarus도 64bit 버전을 다운로드 받아서 설치하게 됩니다.
간단한 폼을 보여주는 예제 프로그램을 만들어서 아래와 같이 프로젝트 환경설정 (Ctrl + Shift + F11)에서 "Compiler Options > Config and Target" 설정 탭에서 "Target platform" 부분을 아래 그림과 같이 설정하면 win32용 어플로 크로스 컴파일을 할 수 있습니다.
하지만 Lazarus 기본 버전으로 설치하였기 때문에 아래와 같이 지원하지 않는다는 오류가 발생합니다.
일단은 시험삼이 "Target platform" 부분을 default로 설정하고 64bit로 빌드한 프로그램을 Windows 95로 옮겨서 실행하였더니, 아래와 같은 오류가 발생하였습니다.
Lazarus Win32 크로스 컴파일
win32용 어플을 만들기 위해서는 아래와 같이 Win32 크로스 컴파일 도구 (lazarus-2.0.10-fpc-3.2.0-cross-i386-win32-win64.exe)를 별도로 받아서 설치하면 됩니다. (https://sourceforge.net/projects/lazarus/files/)
Win32 크로스 컴파일 도구를 설치하고, "Target platform" 부분을 "win32", "i386"으로 설정하면, 빌드가 정상적으로 됩니다. 일단은 윈도우 10에서도 정상적으로 실행은 됩니다. 이 프로그램을 Windows 95로 복사하여 실행하였더니 아래와 같은 새로운 오류가 발생하였습니다.
64bit Lazarus를 이용하여 win32로 크로스 컴파일을 하여 발생하는 문제인가 싶어서, Lazarus의 win32 버전을 다운로드 받아서 Windows 95에 복사하여 직접 설치하고 빌드하여 보려고 했으나, 설치 프로그램도 아래와 같은 오류가 발생하였습니다.
Lazarus 32bit 버전 중에 구할 수 있는 가장 낮은 버전도 0.9.4으로 "2005-01-03" 배포된 버전이었습니다.
이를 Windows 95에 복사하여 설치하였더니, 다행히 설치는 정상적으로 진행되었으나 결정적으로 IDE가 아예 실행이 되지 않았습니다.
과연 Lazarus를 이용하여 Windows 95에서 동작하는 프로그램을 개발한 사람이 없나 열심히 구글링을 해보았지만, 성공했다는 참고 사례를 찾을 수 없었습니다. (참고자료)
마지막 Windows 95 지원 담당자의 댓글도 있었는데, Lazarus는 Windows 95에서는 API 사용이 달라 정상적으로 동작하지 않는다는 댓글만 있었습니다.
결론
Lazarus가 무료로 이용할 수 있는 괜찮은 IDE임에는 틀림이 없지만, 안타깝게도 Windows 95용 프로그램을 만들 수는 없었습니다.
정상적으로 Windows 95를 지원하는 프로그램을 만들기 위해서는 VisualStudio 6.0을 이용하거나, Delphi 7을 이용해야만 합니다.
VisualStudio 6.0은 MS에서 제작한 것이니 당연히 잘 동작할 것이고, Delphi 7의 경우 Windows 95에 대해서는 정식으로 윈도우 인증을 받지 않았다고 합니다.
그래도 빠른 개발 속도 및 디버깅 편의성을 고려하여 Delphi 7으로 Windows 95용 프로그램을 만들기로 결정하였습니다.
참고자료
- "Cross compiling - freepascal wiki":https://wiki.lazarus.freepascal.org/Cross_compiling
- "Problem with Win98 and Lazarus-0.9.11-20060201-win32":https://forum.lazarus.freepascal.org/index.php?topic=1864.0
- "Supporting Windows from 95 to 10":https://forum.lazarus.freepascal.org/index.php?topic=35893.0
'프로그래밍 > 델파이' 카테고리의 다른 글
[pascal] 라디오 버튼 선택 동작 (0) | 2021.09.08 |
---|---|
[pascal] 16진, 10진 숫자 문자열을 정수형으로 변환하기 (StrToInt) (0) | 2021.09.07 |
[pascal] FindWindow / FindWindowEx (0) | 2021.04.01 |
Delphi XE3 64bit UAC 만들기 (0) | 2016.05.22 |
메모리 관리 툴들의 벤치마크 자료(FastMM, ScaleMM2, TCmalloc, ...) (0) | 2012.12.29 |