Seite 1 von 1

[gelöst] VS2005-Qt-Projekt für Windows CE aufsetzen

Verfasst: 10. September 2008 11:44
von johlke
Hallo!
Leider schaffe ich es noch nicht, ein VS2005-Qt-Projekt für Windows CE aufzusetzen. Bisher habe ich die win-ce-embedded-Variante von Qt (4.4.0-rc1) heruntergeladen und erfolgreich kompiliert.
Die in dem "demos"-Ordner enthaltenen Projekte kann ich wunderbar mit VS2005 öffnen und im Windows CE-Simulator ausführen/debuggen. Leider scheitere ich daran, ein eigenes, frisches Projekt für Windows CE aufzusetzen. Bisher bin ich wie folgt vorgegangen:
1. Neuen Projektordner anlegen
2. qmake -project
3. qmake -tp vc

Allerdings wurde bisher nur einmal eine vcproj-Datei (für Win32 und nicht für PocketPC) erzeugt, ansonsten nur eine .sln-Datei.

Wie ist die beste Vorgehensweise um ein Windows CE-Projekt zu erstellen? Den VS2005-Assistenten nehmen, eine Anwendung für Pocket PCs erstellen und nachträgich Qt-Features hinzufügen. Oder kann qmake das für mich übernehmen.

Und wisst ihr, ob ich die Anwendung auch so konfigurieren kann, dass ich sie einmal für Win32 und ein anderes Mal für die PocketPC-Plattform (Windows CE) kompiliere? Benötige ich dazu zwei unterschiedlich konfigurierte Varianten von Qt (eine für Win32 und die andere für PocketPC)?

Weiterhin sehe ich, dass es einen Unterschied zwischen den Plattformen "Windows Mobile 5.0 Pocket PC (ARMV4I)" und "Pocket PC 2003 (ARMV4)" zu geben. Die Qt-Demos sind für die erste Plattform vorkonfiguriert. Wenn ich allerdings die Qt-Demos für die zweite Plattform (ARMV4 ohne I) kompiliere, erhalte ich für jedes Projekt die Fehlermeldungen:

Code: Alles auswählen

qtmaind.lib(qtmain_win.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__security_cookie" in Funktion "WinMain".
qtmaind.lib(qtmain_win.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__security_check_cookie" in Funktion "WinMain".
MSVCRTD.lib(gshandler.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__security_check_cookie".
Vielen Dank für eure Hinweise!
Lars

Verfasst: 10. September 2008 12:21
von Christian81
Der security_check_cookie - Linkerfehler kommt von verschiedenen Compilerflags. In diesem Falle ist es das (nicht)Vorhandensein von /GS (Puffer-Sciherheitsüberprüfung) denke ich.

Verfasst: 10. September 2008 13:24
von johlke
Das Ändern der Einstellung für die Puffer-Sicherheitsprüfung (Projekt -> Eigenschaften -> Konfigurationseigenschaften -> C/C++ ->Codegenerierung) bewirkt leider nichts an dem Kompilierfehler. Laut
http://forums.microsoft.com/MSDN/ShowPo ... 7&SiteID=1
und weiteren Seiten muss diese Option deaktiviert sein, damit dieser Linkerfehler verschwindet. Allerdings ist diese Option bei den Qt-Demos bereits deaktiviert, aber auch ein Aktivieren schafft keine Abhilfe.

Verfasst: 10. September 2008 14:43
von Christian81
Das muss natürlich bei allen Libs abgeschaltet werden - also auch bei den Qt-Libs.

Verfasst: 10. September 2008 15:39
von johlke
Okay, die Qt-Libs habe ich aber ganz gewöhnlich mit dem configure-Skript und nmake erstellt. Muss ich die Qt-Bibliotheken also komplett neu erstellen mit der Option "/GS-" ?

Verfasst: 11. September 2008 08:50
von johlke
Ich habe jetzt ein Qt-Projekt für die ARMV4I-Plattform aufsetzen können, in dem ich einfach die Konfiguration von einer bestehenden Qt-Demo in ein leeres Projekt übernommen haben. Glücklicherweise speichert MS die Konfigurationen in einem lesbaren Format.
Allerdings habe ich immer noch den Kompilierfehler wenn ich für die ARMV4-Plattform (ohne I) erstelle. Weiß jemand Rat?

Verfasst: 19. September 2008 17:57
von johlke
Es muss zusätzlich die Bibliothek "secchk.lib" gelinkt werden.