Windows Mobile 단말기가 하나 있다. 이놈 위에 웹킷을 올려보고 싶었다. 이리저리 찾던 중에, Qt WebKit 브라우저가 눈에 들어왔다. 다시 말하지만, 웹킷은 브라우저 엔진일뿐 브라우저가 아니다. 이놈을 브라우저로 동작하게 만들려면 많은 노력이 필요하다. Qt WebKit 프로젝트가 바로 그런 노력을 하고 있는 프로젝트다. 마침 "한.글.로.된." 좋은 블로그 글을 찾아 편안한 마음으로 시도해볼 수 있었다. 자기가 겪은 경험을 글로 정리해서 공개하는 사람들에게 다시 한번 감사하는 마음을 전한다.
http://www.korone.net/bbs/board.php?bo_table=qt_lecture&wr_id=465

하지만, 세상 모든 일이 그렇듯 뭔가 넘기 힘든 고개들이 있었다. 그런 고개들이 있어야 성공했을 때 성취감을 느낄 수 있는 것 아니겠는가? 나 다음 개발자들은 그런 성취감(?)을 느끼지 못하기를 기도하며 몇가지 경험을 정리한다.

처음에는 Cygwin 콘솔창을 열고 작업 했는데, 뭔가 잘 안됐다. 다음의 웹 페이지를 보고 원인을 알게 됐다. Qt WebKit을 Cygwin서 빌드하는 것은 원래 아직 안되는 것이었다 (2008.11.13. 현재). 그래서 WinXP 32bit의 커맨드 콘솔(cmd.exe)에서 작업했다. 커맨드 콘솔에서 작업하려면, 몇가지 GnuWin32 도구들을 설치해줘야 한다. 아래 "빌드 환경" 파트에 관련 내용을 정리했다.
http://trac.webkit.org/wiki/BuildingQtOnWindows

그리고, 빌드할 때 Qt WebKit 소스가 있는 드라이브의 루트 아래에 tmp 폴더를 만들어줘야 한다. 별거 아닌데, 이것 때문에 조금 고생했다.


빌드 환경
- WinXP 32bit
- Qt-wince를 다운로드 받아 빌드 완료한 상태 (참조 URL)
- Qt-WebKit 소스를 다운로드 받은 상태 (E:\Work\QtWebKit에 소스를 다운로드 함)
- 빌드를 위해 필요한 perl 및 GnuWin32 툴들을 설치한 상태 (참조 URL)


빌드 시퀀스

빌드 시퀀스를 순서대로 적으면 다음과 같다.
E:> cd \Work\QtWebKit\webkit
E:\Work\QtWebKit\webkit> mkdir \tmp
E:\Work\QtWebKit\webkit> mkdir WebKitBuild\Release
E:\Work\QtWebKit\webkit> perl WebKitTools\Scripts\build-webkit
... 성공 !!!  


이상이다.
이렇게 빌드한 바이너리를 Windows Mobile 6.1 단말기에 올리고 테스트해보고 있다. 실행화면과 사용 소감은 다음에 올릴 예정이다.
저작자 표시 비영리 변경 금지
신고
Posted by ingee

댓글을 달아 주세요

  1. 김종연 2009.09.18 15:48 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요...웹킷엔진으로 간단한 모바일 브라우저를 만들어 볼려고 이리저리 찾다가 ingeec님 블로그까지 찾아왔네요...^^
    블로그 내용 보면서 QTWebkit을 윈도우 환경에서 빌드하는것 까지는 성공했는데...
    WinCE용으로 빌드하는 과정에서 git로 소스를 가져와 branch하는 과정에서 에러가 나서 빌드를 제대로 하지 못하고 있네요...
    $ git clone git://code.staikos.net/webkit -- 소스코드 가져오기 성공
    $ cd webkit
    $ git checkout -b wince origin/joerg/wince-master <-- 이 라인을 실행하면 다음과 같은 에러? 메시지가 나옵니다.
    fatal: git checkoout: updating paths is incompatible with switching branches.
    Did you intend to checkout 'origin/joerg/wince-master' which can not be resolved as commit?

    그다음에 자동으로 넘어가져서 그냥 무시하고 빌드하는데....
    에러가 나서 제대로 빌드가 안되는군요...버전이 올라가면서 리모트의 소스가 바뀐건가요?
    현재 버전은 QT4.5.2를 사용하고 있습니다.
    혹시 도움이 될만한 힌트라도 알수 있으면 고맙겠습니다.

    • ingee 2009.09.18 19:49 신고  댓글주소  수정/삭제

      작년 11월 이후 Qt 버전 웹킷을 만져보지 않은 데다가, git 가 제겐 무척 낯섭니다. 저는 도움 드릴게 없을 듯 합니다. 블로그 글을 보시는 다른 분들의 도움을 기대합니다. 제 주변에서 뭐라도 듣게 되면 글 올리겠습니다. 좋은 해결책 찾으시길 빕니다.

    • 홍길동 2011.01.14 13:21 신고  댓글주소  수정/삭제

      webkit 소스 받으신후 qtwebkit 를 위해 qtwebkit 업데이트 하심 됩니당.브랜치를 가져오는거죵..


Windows Mobile에 Qt를 포팅하는 방법에 관한 아주 멋진 글을 찾았다. 블로그 기사가 일러주는 대로만 작업하면 거의 한방에 Qt 포팅이 끝난다. 존경 받아 마땅한 개발자다.

http://punbear.tistory.com/tag/Wince

나는 PDA 프로그래밍에 익숙하지 않다. Windows Mobile을 위한 프로그램을 개발하고 이를 PDA에 심어 실행시키는 절차가 낯설었다. 위에 소개한 블로그 기사 말미에 샘플 어플리케이션 실행에 관해 약간 덧붙이고 싶은 이야기가 있다.

Qt Example 실행하기

1. 샘플 선정
VS 2005로 $(solution_root)\examples\examples.sln 을 로드하면 수십개의 Qt 샘플 프로젝트들이 로드된다. 이중 pixelator 프로젝트가 남들에게 보여주기 괜찮았다. 이 프로젝트를 StartUp Project로 선택한다.

<<그림- StartUp Project 선택하기>>

2. 에뮬에서 실행하기
실행 타겟으로 Windows Mobile 6 Classic Emulator를 선택한다.

<<그림- 에뮬레이터 선택하기>>

3. 실행하기
실행 메뉴를 선택하면, Windows Mobile 에뮬레이터가 실행된다. 한참 기다리면 piexelator 어플이 실행된다.

<<그림- 실행하기>>


<<그림- pixelator 샘플 프로그램>>

4. 단말에서 실행하기
ActiveSync로 단말에 Qt DLL 들과 실행할 샘플 어플리케이션(pixelator.exe)을 같은 폴더에 복사하고, 단말의 프로그램 매니저로 이를 실행시키면 된다. 이때 C:\Program Files\Microsoft Visual Studio 8\VC\ce\Dll\armv4i 폴더에 있는 msvcr80.dll 도 함께 단말에 복사시켜줘야 한다.
복사해야할 파일 목록은 다음과 같다.

$(solution_root)\lib 폴더에 있는 다음 파일들.
이 파일들은 Qt 빌드 결과물들이다.
QtCore4.dll
QtDesigner4.dll
QtDesignerComponents4.dll
QtGui4.dll
QtNetwork4.dll
QtScript4.dll
QtSql4.dll
QtSvg4.dll
QtTest4.dll
QtXml4.dll

VS2005의 run-time library DLL 파일.
C:\Program Files\Microsoft Visual Studio 8\VC\ce\Dll\armv4i 폴더에 있다.
msvcr80.dll

샘플 어플리케이션 파일.
$(solution_root)\examples\itemviews\pixelator\release 폴더에 있다.
pixelator.exe

이상이다. 댓글과 트랙백 많이 환영한다. 한글로 된 개발 문서가 넘쳐나는 세상이 빨리 와야 한다.
저작자 표시 비영리 변경 금지
신고
Posted by ingee
TAG qt, webkit, 웹킷

댓글을 달아 주세요

WebKit에 대하여

WebKit 2008.11.04 19:21
위키가 워낙 잘 정리해 놓아서, 덧붙여 메모할 필요가 느껴지지는 않지만, 웹킷에 대한 사실과 느낌을 간단히 정리한다.

1. 작고 빠른 브라우저 엔진
웹킷은 현존하는 브라우저 엔진 중에서 거의 유일하게 실 단말 레퍼런스를 가지고 있는 놈이다. 애플의 iPhone과 노키아의 S60 단말에 실린 브라우저가 WebKit을 엔진으로 사용하고 있다. 다시말해 웹킷은 현존하는 브라우저 엔진 중에서 가장 작고 빠르다고 평가받고 있는 엔진이다.

2. 업계 표준, 오픈소스 브라우저 엔진
웹킷은 앞서 언급한 애플의 사파리 브라우저, 노키아의 S60 브라우저 뿐 아니라, 구글 크롬 브라우저, 구글 안드로이드 브라우저, 어도비 AIR 브라우저 등에 적용되어 발표됐거나 발표를 앞두고 있다. 웹킷은 애플이 시작해서, 현재도 열성적으로 개발을 추진하고 있는 오픈소스 프로젝트이다. GPL에 비해 덜 엄격한 LGPL/BSD 라이선스 모델을 적용을 하고 있기 때문에 비교적 자유롭게 상용 솔루션을 만들 수 있다.

3. 막강한 기능의 브라우저 엔진
웹킷은 AJAX를 지원한다. HTML 4.01, CSS 2.0, JavaScript 1.5 를 충실히 지원할 뿐 아니라 XMLHttpRequest 객체도 지원한다. 현재 핸드폰에 실려있는 잡다한 브라우저가 만들어내는 네이버 화면과 iPhone에 실린 웹킷이 만들어내는 네이버 화면에는 현격한 품질차이가 존재한다. 웹킷은 기본을 갖춘 브라우저다. 뿐만 아니라 새로 정립되고 있는 최신 표준을 위한 마일스톤도 세워져 있다. HTML 5 같은 신규 표준을 가장 빨리 지원하는 브라우저 엔진은 아마도 웹킷이 될 것이다.

4. 브라우저 엔진일 뿐
웹킷은 브라우저 엔진일 뿐 브라우저가 아니다. 네트웍, 메모리, UI 등의 모듈을 적절히 포팅해주어야 브라우저가 될 수 있다.

애플은 소프트웨어 개발자 수가 얼마 되지 않는다고 한다. 얼마 되지 않는 개발자로 그토록 유려한 제품 라인을 제공할 수 있는 비결은 아마도 오픈소스의 적절한 활용일 것이다. 웹킷의 발전과 응용에 동참하는 '한국어를 사용하는 개발자'의 수가 많아지기를 희망한다. 지금은 사소한 정보라도 얻으려면 꽤 답답하다.
저작자 표시 비영리 변경 금지
신고
Posted by ingee

댓글을 달아 주세요

  1. sMiLo 2009.01.06 11:38 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 저도 webkit 쪽을 살펴보고 있는데, 잠시 방치해놨던 블로그를 다시 활성화시켜봐야 겠다는 생각이 드는군요. ^^ 북마크 시켜놓고 자주 들르겠습니다. 좋은 하루 되세요.

  2. seungzzang 2010.02.18 17:33 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 저도 webkit을 연구하고 있습니다. 블로그에 자주 들러서 정보 얻어가겠습니다. 모르는 것 많이 가르쳐주시면 감사하겠습니다. ^^

  3. -_-v 2010.04.15 18:56 신고  댓글주소  수정/삭제  댓글쓰기

    웹킷을 시작하는 사람입니다. 많이 배워가고 얻은 만큼 나눠주도록 하겠습니다. ^^