반응형
windows ce 5.0 기반 pmp(  maxian m1 edu ) 가 생겨서 머할까 찾아보다  Qt라는 것이 생각났다.
홈페이지를 찾아가봤는데 주소에 http://qt.nokia.com/
랜덤여신님 블로그에 있는 글 Qt, LGPL로 공개 - 오픈 소스 논란에 종지부?  에 따르면...
Trolltech를 nokia에서 인수했단다..

학교로 돌아갈 때쯤 안드로이드라는 것이 나왔구나 싶더니만 이런 일두 있었구나 싶어진다. 

ActiveSync 4.5 



Windows Mobile 5.0 (Pocket PC, Smartphone and Pocket PC with Phone editions)
Windows Mobile 5.0 SDK R2
Visual Studio 2008 Professional Edition DVD에 있는  MagOrcasPPC.msi 와  MagOrcasSP.msi 가 필요하다. 
\WCU\WindowsMobileSDK 경로에서 찾을 수 있다. ( Smart Device 를 개발하려면, Professional Edition이 필요하다고 함.)


windows용 QT SDK


2. windows ce용 qt 소스코드 컴파일 

http://qt.nokia.com/downloads에서 LGPL 라이센스를 선택하면 4.6.1버전으로 windows ce용 소스코드를 찾을 수 있다. 

visual studio 2008을 사용하여 4.6.1버전을 configure하려 하면 에러가 발생한다. 찾아보니 자동으로 qconfig.h를 생성못하는 BUG라는 것 같다. 

c:\qt\4.6.1\include\qtcore\../../src/corelib/global/qglobal.h(62) : fatal error
C1083: 포함 파일을 열 수 없습니다. 'QtCore/qconfig.h': No such file or directory


이전 버전 ftp://ftp.qt.nokia.com/qt/source/qt-embedded-wince-opensource-src-4.5.3.zip 을 다운로드 받았다.
압축을 푼 후, c:\qt\4.5.3 아래에 bin 디렉토리가 오도록 압축푼 파일들을 복사한다.

제어판-시스템-고급-환경변수에서
path변수 c:\qt\4.5.3\bin을 추가 혹은 새로 만든다. 


시작-실행-cmd 실행

configure를 하기위한 명령을 실행한다. 그밖에 사용가능한 플랫폼은 http://qt.nokia.com/doc/4.5/supported-platforms.html에서 확인가능하며 platform과 xplatform 옵션에 사용가능한 조합은 C:\Qt\4.5.3\mkspecs에서 찾아서 사용하면 된다. 
call "c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
 
cd\
cd qt\4.5.3\
configure -platform win32-msvc2008 -xplatform wince50standard-armv4i-msvc2008

o입력 후  엔터 눌러 Open Source Edition선택
y입력 후 엔터 눌러서 라이센스 동의

문제없이 configure가 완료되면 아래와 같은 메시지를 볼 수 있다. 
Qt is now configured for building. Just run nmake.
To reconfigure, run nmake confclean and configure.

설치했던 windows CE SDK 관련 설정을 해주어야한다.
set INCLUDE=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\include;C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\Include\Armv4i

set LIB=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\lib\armv4i;C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\Lib\ARMV4I

set PATH=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\bin\x86_arm;%PATH%

qt를 빌드한다. 
nmake

완료되면 뜨는 메시지
Finished generating code


3. 예제  컴파일
4.3버전에 있는 예제 소스코드를 컴파일 해봤다.

적당한 경로에 example 디렉토리를 만든 후, example.cpp라는 이름으로 예제 소스파일을 생성하였다. 
 #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) {     QApplication app(argc, argv);     QPushButton hello("Hello world!");     hello.resize(100, 30);     hello.show();     return app.exec(); }

커맨드 라인에서 컴파일하려면 nmake를 사용하기 위해 다음 2가지 방법 중 하나를 사용하면 된다. 
시작 - 실행 - cmd 
call "c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"

또는 

시작-실행-Microsoft Visual Studio 2008-Visual Studio Tools
-Visual Studio 2008 Command Prompt 

예제 코드는 다음 위치에 있다.
C:\Qt\example>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 5091-4F26

 C:\Qt\example 디렉터리

2010-02-11  오후 03:10    <DIR>          .
2010-02-11  오후 03:10    <DIR>          ..
2010-02-11  오후 02:43               253 example.cpp
               1개 파일                 253 바이트
               2개 디렉터리  57,053,052,928 바이트 남음

다음 내용으로 build.bat라는 파일을 생성해서 예제 소스코드 있는 디렉토리에 두고 실행시키면 컴파일이 완료된다.
call "c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
set INCLUDE=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\include;C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\Include\Armv4i
set LIB=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\lib\armv4i;C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\Lib\ARMV4I
set PATH=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\bin\x86_arm;%PATH%
qmake -project  
qmake -spec C:\Qt\4.5.3\mkspecs\wince50standard-armv4i-msvc2008 -win32
nmake

근데 라이브러리 컴파일 할 때 확인을 안해서 release가 아니라 debug 실행파일만 만들어진다.
다시 컴파일하기에는 시간이 오래걸려서...우선은 그냥 써야겠다.
C:\Qt\example\debug>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 5091-4F26

 C:\Qt\example\debug 디렉터리

2010-02-11  오후 03:26    <DIR>          .
2010-02-11  오후 03:26    <DIR>          ..
2010-02-11  오후 03:26            11,264 example.exe
2010-02-11  오후 03:26            24,145 example.obj
2010-02-11  오후 03:26           412,672 example.pdb
               3개 파일             448,081 바이트
               2개 디렉터리  57,051,103,232 바이트 남음

생성된 example.exe 파일과 아래 두 경로에 있는 DLL을 모두 복사해서  maxian m1 edu의 적당한 경로에 같이 넣어준다. 필요한 DLL만 확인하는 방법을 사용하면 해당되는 것만 옮겨도 되지만 난 그냥 다 복사해두는게 편한거 같다.

C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\dll\armv4i
C:\Qt\4.5.3\lib

pmp에서 example.exe를 실행시키면 잘 실행되는 것을 확인 할 수 있다.






반응형

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
질문을 남겨주면 가능한 빨리 답변드립니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 ~~

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요 ^^

  1. Favicon of https://b5.aurynj.net BlogIcon 어­리 2010.08.01 13:15 신고

    안녕하세요, Qt 4.7.0-beta2를 WinCE 5.0 ARMv4i에 올리려고 합니다. -platform win32-msvc2008 -xplatform wince50standard-armv4i-msvc2008 옵션이라면 저와 같은 플랫폼을 사용하시는군요. 사실 이 글은 제가 처음 시도할 때부터 지금까지 큰 도움이 되어 감사합니다.

    그런데 저는 xplatform 없으면 configuration은 모두 성공합니다만, qt를 빌드할 때 맛탱이가 간 건 아닐텐데 Makefile에서 U1045 에러를 뿜는군요... xplatform 설정을 해 주면 configuratin 과정에서 역시 U1045라고 하고요. 관련 라이브러리 링크가 잘못된 것은 아닙니다. 검색을 해 보면 읽기 전용을 풀면 된다는 사례 빼고는 다들 성공한 모양이어서 제게 도움이 되는 건 없어서요... 혹시 도와주실 방법 없을까요? 부탁드립니다.

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2010.08.01 21:45 신고

      제가 이쪽 일을 현재 하고 있는게 아니라서..머가 문제점인지 바로 알려드릴수가 없네요.. 단지 힌트가 될지 모르겠지만 저의 경우 xplatform 옵션을 이것저것 바꾸다가 해결되었어요

    • Favicon of https://b5.aurynj.net BlogIcon 어­리 2010.08.01 23:43 신고

      조언 감사합니다_

+ Recent posts