Projects/KDE on Windows/Windows CE: Difference between revisions

From KDE TechBase
(Building Qt and Packaging Windows CE software)
 
(Replaced content with "{{Moved To Community|Windows/Imported From TechBase/{{#titleparts:{{PAGENAME}}||3}}}}")
 
(45 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Building Qt for Windows CE using cegcc
{{Moved To Community|Windows/Imported From TechBase/{{#titleparts:{{PAGENAME}}||3}}}}
 
The original mailing list thread:
http://lists.trolltech.com/pipermail/qt-wince-interest/2009-November/000764.html
 
 
 
=== Notes about the port: (by Maurice Kalinowski) ===
 
 
- Project page: http://cegcc.sourceforge.net/
- arm-mingw32ce is the compiler we are chosing, not cegcc
- download link: http://sourceforge.net/projects/cegcc/files/cegcc/0.59.1/mingw32ce-0.59.1.tar.bz2/download
 
Building Qt for Windows CE on Linux with mingw32ce
Assume you have a checkount in <QTSRCDIR>
- go to <QTSRCDIR>
- call cegcc_configure
 
/* Building the host tools */
- foreach <item> in bootstrap, moc, uic, rcc
    - goto <QTSRCDIR>/src/tools/<item>
        - call qmake -spec <QTSRCDIR>/mkspecs/linux-g++
        - call make
 
/* Settings up a cross compiler */
- Something alike:
  export MINGWPATH=/opt/mingw32ce
  export INCLUDE=$MINGWPATH/arm-mingw32ce/include:$MINGWPATH/include:$INCLUDE
  export LIB=$MINGWPATH/arm-mingw32ce/lib:$MINGWPATH/lib:$LIB
  export PATH=$MINGWPATH/bin:$MINGWPATH/arm-mingw32ce/bin:$MINGWPATH/libexec/gcc/arm-mingw32ce/4.4.0:$PATH
 
- foreach <item> in winmain, corelib, gui
    - goto <QTSRCDIR>/src/<item>
        - call qmake again
        - call make
        - call make install
 
- in case of pch errors delete .pch/release-static-emb-windowsce/qt_gui_pch.h.gch directory
- when you are compiling your application outside of the Qt tree, you might
  get into trouble related to mkspecs and include dirs.
- for deployment you need to copy these files also to the same directory on the device:
    libgcc_s_sjlj-1.dll
    libstdc++-6.dll
  which are located inside the arm-mingw32ce directory
 
 
 
=== Additional Notes: ===
Currently Windows Mobile >= 6.1 does not load the libgcc_s_sjlj-1.dll libstdc++-6.dll properly, fix is in the works, see:
 
http://www.mail-archive.com/[email protected]/msg02699.html
 
 
 
 
 
==Packaging:==
 
Deploying Qt Windows Mobile Applications using LCAB
 
LCAB is a free software utility, that has the ability to create Microsoft CAB archives. You can get it on ( http://packages.debian.org/lenny/lcab )or as a Debian package.
 
Now that you can create cabinet files, the question is how to get Windows Mobile to recognize them as install packages. Thanks to Shaun Jackman this, also is no Problem. He wrote a Perl script to add the needed manifest and setup configuration file. You can find it under ( http://files.intevation.de/incoming/aheinecke/cab_files/pocketpc-cab.pl ) There is also a pocketpc-cab Debian packet out there, which does not support registry entries or the creation of shortcuts.
 
This script needs a configuration file, like Cabwiz but it is much more simple then the Cabwiz variant.
Simply write down for every file you want to package:
 
Filename Target-Directory [Shortcut Name] [Shortcut Folder]
for example the Qt widget collidingmice:
collidingmice.exe %CE1%/Colliding_Mice "Colliding Mice" %CE11%
msvcr90.dll %CE2%
QtCore4.dll %CE2%
QtGui4.dll %CE2%
 
This installs collidingmice.exe to Program Files/Colliding_Mice , places a shortcut in the Start Menu folder and copies the libraries into the Windows directory. The CE vars are WindowsCE variables, for more on them see the Microsoft documentation.

Latest revision as of 14:19, 11 March 2016

This page is now on the community wiki.