개발 환경/Windows 설치 및 활용

Windows CE 5.0 을 위한 QT 라이브러리 컴파일

webnautes 2010. 2. 11. 15:39
반응형
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를 실행시키면 잘 실행되는 것을 확인 할 수 있다.






반응형

천천히 하지만 꾸준히 공부한 내용을 블로그에 공유하는 것이 제 취미생활입니다.
블로그를 시작하게 된 계기는 내가 알게된 내용을 정리하려고 였는데 이왕이면 다른 사람에게도 공유하자였지요.

블로그 내용을 진행해보다가 문제 발생시 지나치지 말고 댓글로 알려주세요. 그래야 다음에 해당 글을 읽는 분에게 도움이 됩니다.



글이 많이 유익하셨다면 토스아이디로 후원해주세요. 토스아이디



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