Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. How to install for WinCE 6.0 ?

How to install for WinCE 6.0 ?

Scheduled Pinned Locked Moved Mobile and Embedded
6 Posts 1 Posters 11.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    Aleksej
    wrote on last edited by
    #1

    Hi!

    I have a question.

    Does anybody at Nokia knows how to install QT for WinCE 6.0 ?

    I downloaded 4.6.3 and first tried to install for Windows.

    I used instructions here http://doc.trolltech.com/4.6.2/install-win.html ( "Installing Qt on Windows")

    for itstalling it for Windows. It was not easy. There were errors, I looked at forums I found the same recipe as 9 months ago:

    bq. delete the src/script/tmp/moc/debug_shared/mocinclude.tmp
    and the same file in release_shared.

    Ok, then it successfully finished, I compiled and run programm, all setup was done in VS commnd prompt and and no path changed left in system.

    Then I tried to install for WinCE 6.0. I looked in internet and found the page "Installing Qt on Windows CE"

    http://doc.qt.nokia.com/4.6/install-wince.html

    It was obviously for WinCE 5.0.

    It tells

    bq. type configure -help to get a list of all available options. See the README file for the list of supported platforms.

    "configure -help" does not give the list of platforms and README ( which readme?) sends you to http://qt.nokia.com/doc/4.6/supported-platforms.html , the page which contains the tips that WinCE 6.0 is not supported yet.

    Then I found the three years old discussion "Building for WinCE 6.0" ( http://lists.trolltech.com/pipermail/qt-wince-interest/2007-October/000050.html ) which goes around some video (OMG) http://dist.trolltech.com/video/qtwincetp/qtwincetp.html

    The main idea of that of that discussion is that something is really wrong with that video and frankly speaking I did not understand what exactly is wrong. I just tried to follow that video and got error on the second step:

    configure -platform win32-msvc2005 -xplatform wincewm60professional-msvc2005

    returns "File or path is not found (nmake)"

    I did it in usual command prompt and really don't know where it could find that nmake.

    Is here any real live person who managed to install QT for WinCE 6.0 ?

    1 Reply Last reply
    0
    • A Offline
      A Offline
      Aleksej
      wrote on last edited by
      #2

      OK, then...

      bq. C:Qt2010.04 CEqtbin>checksdk -list
      Available SDKs:
      SDK Name: Pocket PC 2003 (ARMV4)
      SDK Name: Smartphone 2003 (ARMV4)
      SDK Name: Platform Builder (_TGTCPU)

      bq. checksdk -sdk Platform Builder (_TGTCPU) -script tgt_cpu.bat

      The output contained obviously wrong paths:

      bq. echo Environment Selection:Platform Builder (_TGTCPU)
      set PATH=C:/Program Files/Microsoft Visual Studio 8/VC/ce/bin/x86_cex86;C:/Program Files/Microsoft Visual Studio 8/VC/bin;C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/bin;C:/Program Files/Microsoft Visual Studio 8/Common7/Tools;C:/Program Files/Microsoft Visual Studio 8/Common7/IDE;C:/Program Files/Microsoft Visual Studio 8/Common/Tools;C:/Program Files/Microsoft Visual Studio 8/Common/IDE;C:/Program Files/Microsoft Visual Studio 8/;$(FrameworkSDKDir)Bin;%PATH%
      set INCLUDE=C:/Program Files/Microsoft Visual Studio 8/VC/ce/include;C:/Program Files/Microsoft Platform Builder/6.00/cepb/IdeVS/GenericSdk/include/_TGTCPU;C:/Program Files/Microsoft Platform Builder/6.00/cepb/IdeVS/GenericSdk/include;C:/Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/include;C:/Program Files/Microsoft Visual Studio 8/SmartDevices/SDK/SQL Server/Mobile/v3.0
      set LIB=C:/Program Files/Microsoft Platform Builder/6.00/cepb/IdeVS/GenericSdk/lib/_TGTCPU;C:/Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/lib/_TGTCPU;C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/_TGTCPU
      .

      For example, these folders do not exist:

      C:/Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/lib/_TGTCPU;
      C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/_TGTCPU

      I took the paths from here ( October 2007 ):

      http://lists.trolltech.com/pipermail/qt-wince-interest/2007-October/000052.html

      bq. set
      INCLUDE=C:/qt/4.3.2-tp1/include;C:/WINCE600/PUBLIC/COMMON/SDK/INC;C:/Pro
      gram Files/Microsoft Visual Studio 8/VC/ce/include;C:/Program
      Files/Microsoft Visual Studio
      8/VC/ce/atlmfc/include;C:/WINCE600/OSDesigns/MyTestOSDesign/MyTestOSDesi
      gn/Wince600/MyTestArmBSP_ARMV4I/cesysgen/ddk/inc;C:/WINCE600/OSDesigns/M
      yTestOSDesign/MyTestOSDesign/Wince600/MyTestArmBSP_ARMV4I/cesysgen/oak/i
      nc;C:/WINCE600/OSDesigns/MyTestOSDesign/MyTestOSDesign/Wince600/MyTestAr
      mBSP_ARMV4I/cesysgen/sdk/inc
      set
      LIB=C:/qt/4.3.2-tp1/lib;C:/WINCE600/OSDesigns/MyTestOSDesign/MyTestOSDes
      ign/Wince600/MyTestArmBSP_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail;C:/WINCE
      600/PUBLIC/COMMON/SDK/LIB/ARMV4I/RETAIL;C:/WINCE600/PUBLIC/IE/OAK/LIB/AR
      MV4I/RETAIL;C:/Program Files/Microsoft Visual Studio
      8/VC/ce/lib/armv4i;C:/Program Files/Microsoft Visual Studio
      8/VC/ce/atlmfc/lib/armv4i;C:/WINCE600/OSDesigns/MyTestOSDesign/MyTestOSD
      esign/Wince600/MyTestArmBSP_ARMV4I/cesysgen/oak/lib/ARMV4I/retail;C:/WIN
      CE600/OSDesigns/MyTestOSDesign/MyTestOSDesign/Wince600/MyTestArmBSP_ARMV
      4I/cesysgen/sdk/lib/ARMV4I/retail;
      set PATH=C:/Program Files/Microsoft Visual Studio
      8/VC/ce/bin/x86_arm;%PATH%
      .

      And adjusted them for my configuration:

      bq. set
      INCLUDE=
      C:/Qt/2010.04CE/qt/include;
      C:/Program Files/Microsoft Visual Studio 8/VC/ce/include;
      C:/Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/include;
      C:/Program Files/Microsoft Visual Studio 8/SmartDevices/SDK/SQL Server/Mobile/v3.0;
      C:/WINCE600/PUBLIC/COMMON/SDK/INC;
      C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/ddk/inc;
      C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/oak/inc;
      C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/sdk/inc;
      set
      LIB=
      C:/Qt/2010.04CE/qt/lib;
      C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/sdk/lib/ARMV4I/debug;
      C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/oak/lib/ARMV4I/debug;
      C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/ddk/lib/ARMV4I/debug;
      C:/WINCE600/PUBLIC/COMMON/SDK/LIB/ARMV4I/DEBUG
      C:/WINCE600/PUBLIC/IE/OAK/LIB/ARMV4I/DEBUG
      C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/armv4i;
      C:/Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/lib/armv4i;
      set PATH=
      C:/Qt/2010.04CE/qt/bin;
      C:/Program Files/Microsoft Visual Studio 8/VC/ce/bin/x86_arm;
      C:/Program Files/Microsoft Visual Studio 8/VC/ce/bin/x86_cex86;
      C:/Program Files/Microsoft Visual Studio 8/VC/bin;
      C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/bin;
      C:/Program Files/Microsoft Visual Studio 8/Common7/Tools;
      C:/Program Files/Microsoft Visual Studio 8/Common7/IDE;
      C:/Program Files/Microsoft Visual Studio 8/;
      %PATH%
      .

      they were put in bat file tgt_cpu_CE.bat

      Then I made the sequence like this in VS command prompt:

      set path=%path%;C:/Qt/2010.04CE/qt/bin
      cd C:/Qt/2010.04CE/qt
      configure -platform win32-msvc2005 -xplatform wince60standard-armv4i-msvc2005 -rtti -exceptions -stl
      tgt_cpu_CE.bat
      nmake

      nmake returned the error:

      bq. bug_shared/moc_qscriptextensionplugin.cpp
      api/qscriptextensionplugin.h(43): Error: Undefined interface
      NMAKE : fatal error U1077: 'C:/Qt/2010.04CE/qt/bin/moc.exe' : return code '0x1'
      Stop.
      NMAKE : fatal error U1077: '"C:/Program Files/Microsoft Visual Studio 8/VC/BIN/n
      make.exe"' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: 'cd' : return code '0x2'
      Stop.

      I did that was prescribed in December 2009:

      bq. to delete the src/script/tmp/moc/debug_shared/mocinclude.tmp
      and the same file in release_shared.

      and pressed nmake again

      And it successfully finished.

      1 Reply Last reply
      0
      • ? This user is from outside of this forum
        ? This user is from outside of this forum
        Guest
        wrote on last edited by
        #3

        good one. you should add a howto wiki page in the forum with these steps

        1 Reply Last reply
        0
        • A Offline
          A Offline
          Aleksej
          wrote on last edited by
          #4

          [quote author="chetankjain" date="1282555806"]good one. you should add a howto wiki page in the forum with these steps[/quote]

          I will try

          Part two:


          In folder

          C:/Qt/2010.04CE/qt/mkspecs/wince60standard-armv4i-msvc2005

          the strings

          CE_SDK = STANDARDSDK_600 # replace with actual SDK name
          CE_ARCH = ARMV4I

          were replaced to

          CE_SDK = Platform Builder
          CE_ARCH = _TGTCPU

          otherwise VS does not work with this QT.


          VS for QT projects was always started from bat file,
          which sets the environment, like this:

          set INCLUDE=C:/Qt/2010.04CE/qt/include;C:/Program Files/Microsoft Visual Studio 8/VC/ce/include;C:/Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/include;C:/Program Files/Microsoft Visual Studio 8/SmartDevices/SDK/SQL Server/Mobile/v3.0;C:/WINCE600/PUBLIC/COMMON/SDK/INC;C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/ddk/inc;C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/oak/inc;C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/sdk/inc;
          set LIB=C:/Qt/2010.04CE/qt/lib;C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/sdk/lib/ARMV4I/debug;C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/oak/lib/ARMV4I/debug;C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/ddk/lib/ARMV4I/debug;C:/WINCE600/PUBLIC/COMMON/SDK/LIB/ARMV4I/DEBUG;C:/WINCE600/PUBLIC/IE/OAK/LIB/ARMV4I/DEBUG;C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/armv4i;C:/Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/lib/armv4i;
          set PATH=C:/Qt/2010.04CE/qt/bin;C:/Program Files/Microsoft Visual Studio 8/VC/ce/bin/x86_arm;C:/Program Files/Microsoft Visual Studio 8/VC/ce/bin/x86_cex86;C:/Program Files/Microsoft Visual Studio 8/VC/bin;C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/bin;C:/Program Files/Microsoft Visual Studio 8/Common7/Tools;C:/Program Files/Microsoft Visual Studio 8/Common7/IDE;C:/Program Files/Microsoft Visual Studio 8/;%PATH%
          devenv


          The QT integration for VS was installed, qt-vs-addin-1.1.5.exe


          QT addin adds menu "QT" to VS and there is "QT options",
          where this QT was added by setting path to C:/Qt/2010.04CE/qt


          File->New->Project->Qt4 Projects->Qt Windows CE Application
          project was created.


          In file C:/Qt/2010.04CE/mingw/lib/gcc/mingw32/4.4.0/include/c++/mingw32/bits/c++config.h

          @The strings
          #include <bits/os_defines.h>
          #include <bits/cpu_defines.h>
          were replaced by
          #include <os_defines.h>
          #include <cpu_defines.h>
          @


          In folder C:/Program Files/Microsoft Visual Studio 8/VC/bin
          the x86 compiler cl.exe was renamed to cl_old.exe

          this could be somehow regulated by changing paths in bat file ?


          The paths

          C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/armv4i
          C:/WINCE600/OSDesigns/OSDesign10/Wince600/My_platform_ARMV4I/cesysgen/sdk/lib/ARMV4I/debug

          were added to the "Additional libraries directories" property of project


          Run time library option was changed to "Multi-threaded debug"


          After every compilation the file

          moc_qt_wince_test.cpp

          was changed to remove all "rel_ops::" prefixes

          Whats that?


          The exe file was opened by depends.exe and several files were collected to accompany it:

          QTCORED4.DLL
          C:/Qt/2010.04CE/qt/lib

          QTGUID4.DLL
          C:/Qt/2010.04CE/qt/lib

          MSVCR80D.DLL
          C:/Program Files/Microsoft Visual Studio 8/VC/ce/Dll/armv4i

          the file COREDLL.DLL
          C:/WINCE600/OSDesigns/OSDesign10/RelDir/My_platform_b043362_i_MX253_ARMV4I_Debug
          is already provided by platform


          Then VS was opened by normal way with another solution, which contained the "OSDesign10" of Platform Builder.
          In this solution the folder "Subprojects" was right-clicked to "add new subproject"->"WinCE Application".

          The file test_app.reg of this subproject was changed to add
          @[HKEY_LOCAL_MACHINE/Init]
          "Depend50"=hex:14,00, 1e,00
          "Launch50"="test_app.exe"@

          This application was compiled and tested.

          After this its test_app.bib was changed to add these lines:

          msvcr80d.dll D:/projects/VS_8/QT_WinCE_test/debug/package/msvcr80d.dll NK
          QtCored4.dll D:/projects/VS_8/QT_WinCE_test/debug/package/QtCored4.dll NK
          QtGuid4.dll D:/projects/VS_8/QT_WinCE_test/debug/package/QtGuid4.dll NK
          QT_WinCE_test.exe D:/projects/VS_8/QT_WinCE_test/debug/package/QT_WinCE_test.exe NK

          and the code to start QT_WinCE_test.exe was added to test_app.exe:

          STARTUPINFO startupInfo;
          PROCESS_INFORMATION processInfo;

          memset(&startupInfo,0,sizeof(STARTUPINFO));

          bool_r=CreateProcess(
          _T("QT_WinCE_test.exe"),
          NULL,
          NULL,
          NULL,
          FALSE,
          NULL,
          NULL,
          NULL,
          &startupInfo,
          &processInfo);


          Possibly the QT_WinCE_test.exe can be started without test_app.exe
          using the project.reg and project.bib
          but test_app.exe gives you ability to test your platform.


          What should I do with "rel_ops::" prefixes in

          d:/projects/VS_8/QT_WinCE_test/GeneratedFiles/Debug/moc_qt_wince_test.cpp ?

          after I remove all "rel_ops::" project can be compiled and works. But after rebuild they appear again.

          1 Reply Last reply
          0
          • A Offline
            A Offline
            Aleksej
            wrote on last edited by
            #5

            Part three:

            Samples.

            There is a big folder named "examples"

            I opened the VS and used the "Replace in files" dialog to replace all strings

            STANDARDSDK_600

            by

            Platform Builder (_TGTCPU)

            in all files in that directory.

            After this it was possible to open samples at low level - by opening their vcproj files.

            VS was started from bat file, which sets environment.

            Also it was necessary to add include and link directories in projects:

            1>c:/qt/2010.04ce/qt/include/qtcore/../../src/corelib/global/qglobal.h(45) : fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory
            --> add C:/WINCE600/OSDesigns/OSDesign10/Wince600/PCB06998_ARMV4I/cesysgen/sdk/inc

            LINK : fatal error LNK1181: cannot open input file 'corelibc.lib'
            --> add C:/WINCE600/OSDesigns/OSDesign10/Wince600/PCB06998_ARMV4I/cesysgen/sdk/lib/ARMV4I/debug

            1>LINK : fatal error LNK1104: cannot open file 'LIBCMTD.lib'
            --> add C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/armv4i

            1 Reply Last reply
            0
            • A Offline
              A Offline
              Aleksej
              wrote on last edited by
              #6

              Part four:

              Debugging

              In VS started by QT environment bat file

              analogclock project --> Property pages --> Linker --> Debugging --> Generate Map File
              Build it


              in VS started usual way with OS Design project

              OS Design project --> Property pages --> Pre-Make Image
              add command
              copy C:/Qt/2010.04CE/qt/examples/widgets/analogclock/debug/. C:/WINCE600/OSDesigns/OSDesign10/RelDir/My_platform_b043362_i_MX253_ARMV4I_Debug


              in
              c:/WINCE600/OSDesigns/OSDesign10/test_app/test_app.bib:
              change record for analogclock.exe
              analogclock.exe $(_FLATRELEASEDIR)/analogclock.exe NK


              in
              c:/WINCE600/OSDesigns/OSDesign10/test_app/test_app.cpp
              change code to start analogclock.exe

              bool_r=CreateProcess(
              _T("analogclock.exe"),
              NULL,
              NULL,
              NULL,
              FALSE,
              NULL, //NORMAL_PRIORITY_CLASS,
              NULL,
              NULL,
              NULL,
              &processInfo);


              Then open
              C:/Qt/2010.04CE/qt/examples/widgets/analogclock/analogclock.cpp

              set breakpoint in

              AnalogClock::paintEvent

              call Target --> Attach device, etc


              1 Reply Last reply
              0

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved