crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QT 4.5.1 под WinCE большой размер исполняемого файла.
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ver Дата 1.6.2009, 22:42
  пробую согласно рекомендаций,на работе стоит vs2005:
ВАРИАНТ 1

1.распаковал дистрибутив d:\QT\wince_4.5.1_static

2. изменяю файл d:\QT\wince_4.5.1_static\mkspecs\common\wince.conf:
2.1 убрал два последних - удалить embed_manifest_dll embed_manifest_exe, результат:
CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target

2.2 MD- заменил на мт, вот результат
QMAKE_CFLAGS_RELEASE = -O2 -GL -MT
QMAKE_CFLAGS_DEBUG = -DDEBUG -D_DEBUG -Zi -MTd

3.d:\QT\wince_4.5.1_static\mkspecs\win32-msvc2005\qmake.conf (ну на всякий -случай, шаманство т.к толком мне пока не понятно зачем это может потребоваться)

3.1 удалить embed_manifest_dll embed_manifest_exe, результат:
CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target

3.2 - заменил на мт, вот результат
QMAKE_CFLAGS_RELEASE = -O2 -MT -GL
QMAKE_CFLAGS_DEBUG = -Zi -MTd

4. сборка
4.1 configure -static -platform win32-msvc2005 -xplatform wincewm60professional-msvc2005
4.2 перейти в каталог bin и выполнить: setcepaths wincewm60professional-msvc2005
4.3. назад из бин в d:\QT\wince_4.5.1_static\ и выполнить: nmake sub-src

никаких ошибок не выдало.

5. проект для VS
5.1 После этого создаем проект в студии, в опциях линкера меняем: qmenu_wce.res на qmenu_wince.res
5.2 Компилим и запускае на эмуляторе. Хотя файл msvcr80.dll и создается - для запуска приложения он не нужен.
после упаковкой upx простейший exe-шник занимает 1,7 мб. запускается быстро

ВСЕ НОРМАЛЬНО. видно что msvcr80.dll не используется.

ВАРИАНТ 2
Все то тоже самое повторяю дома для VS2008, правлю файлы:
d:\QT\wince_4.5.1_static\mkspecs\common\wince.conf
d:\QT\wince_4.5.1_static\mkspecs\win32-msvc2005\qmake.conf
d:\QT\wince_4.5.1_static\mkspecs\win32-msvc2008\qmake.conf
при компиляции - нет ошибок, а проект все равно использует msvcr90.dll.

ВАРИАНТ 3
ВСЕ ТОЖЕ САМОЕ, что делал на рабoте для VS2005 повторяю дома (хотя стоит VS2008) - при конфигурировании и для nmake параметры указываю "как-бы для 2005",
опять все проходит успешно, компилируется, проект создается, и опять использует msvcr90.dll.

Подскажите как же все-таки избавится от зависимостей VS для 2008 студии. Спасибо.
ver Дата 29.5.2009, 15:59
  всем спасибо за точные и оперативные ответы. попробую
Litkevich Yuriy Дата 29.5.2009, 15:36
 
Цитата(Гость_ver_* @ 29.5.2009, 19:25) *
или все-таки править файл <QTDIR>\mkspecs\win32-X\qmake.conf?
ну поидее надо посмотреть какой файл инклюдится конфигом для мобильной платформы, если <QTDIR>\mkspecs\win32-X\qmake.conf
то его и править.

вот в wincewm60professional-msvc2008/qmake.conf есть инклюд:
include(../wincewm60professional-msvc2005/qmake.conf)
а в нём есть ещё один:
include(../wincewm60professional-msvc2005/qmake.conf)
...
и т.д. приходим к файлу:
\mkspecs\common\wince.conf
в котором есть эта переменная:
QMAKE_CFLAGS_RELEASE    = -O2 -GL -MD
ver Дата 29.5.2009, 15:25
 
Цитата(Litkevich Yuriy @ 29.5.2009, 15:02) *
Цитата(Гость_ver_* @ 29.5.2009, 18:11) *
Подскажите еще, как можно избавиться от файла msvcr90.dll
см. тут


спасибо, попробую. Но там указано вроде как для WIN32 (править файл в <QTDIR>\mkspecs\win32-X\qmake.conf) в каталоге для windows mobile 6 prof в файле qmake.conf нет строки "QMAKE_CFLAGS_RELEASE...", добавить или все-таки править файл <QTDIR>\mkspecs\win32-X\qmake.conf?
Что-то я запутался...
Litkevich Yuriy Дата 29.5.2009, 15:02
 
Цитата(Гость_ver_* @ 29.5.2009, 18:11) *
Подскажите еще, как можно избавиться от файла msvcr90.dll
см. тут
ver Дата 29.5.2009, 14:48
  >Что за пост? 0 поста у нас на форуме нет.


не правильно ссылку дал http://www.forum.crossplatform.ru/index.ph...ost&p=17186
ViGOur Дата 29.5.2009, 14:11
 
Цитата(Гость_ver_* @ 29.5.2009, 15:05) *
я так понимаю, что вот этот пост для меня
Что за пост? 0 поста у нас на форуме нет.

Цитата(Гость_ver_* @ 29.5.2009, 15:05) *
Как быть с временем запуска, 5 сек - это норма для QT на WM?
Честно говоря не знаю, не пробовал. Я достаточно давно писал для Windows Mobile и то на MFC. :)
ver Дата 29.5.2009, 14:11
  Подскажите еще, как можно избавиться от файла msvcr90.dll который все равно создается даже при статической линковке.
какой ключ компиляции надо задавать (для Windows mobile). только подробно, прошу вас, как для дауна :)
ver Дата 29.5.2009, 14:05
 
Цитата(ViGOur @ 29.5.2009, 13:45) *
Ну так, а ты мерил сколько будет весить приложение, если его собрать на MFC в статике? :)
...
...

мерил, простое диалоговое окно 300 - 400 кб. Скорость - очень быстрый запуск и работа

я так понимаю, что вот этот пост для меня.до двух 2б - это еще нормально. Как быть с временем запуска, 5 сек - это норма для QT на WM?
ViGOur Дата 29.5.2009, 13:45
  Ну так, а ты мерил сколько будет весить приложение, если его собрать на MFC в статике? :)
В принципе вполне возможно, что это его реальный размер. В режиме статической линковки в экзешник пихается все, что душе компилятора угодно! Единственное можно попробовать покопать в сторону оптимизации размера файла при компиляции в VS. Помнится ребята как-то с помощью этого дела уменьшали стандартное MFC приложение в 40 Kb, до 7 Kb. Если я ничего не путаю. Но они пробовали это при динамической линковке.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 16.5.2024, 12:43