Russian Qt Forum
Ноябрь 23, 2024, 11:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: VS2005 и голый XP  (Прочитано 14731 раз)
17dufa
Гость
« : Июль 25, 2007, 10:20 »

Пишу на Qt 4.2.2+VS2005
Все замечательно, кроме одного момента: необходимо, чтобы скомпилированный exe мог без проблем запускаться на машине, где кроме Window XP ничего нет. Вроде этого можно добиться исправив флаг по умолчанию /MD на /MT. С пустым проектом это работает. Пытаюсь изменить этот флаг в проекте с использованием Qt и получаю ошибки линковки. Есть подозрение, причина ошибок - флаг /MD при сборке Qt, то есть в тех makefile'ах из которых получается Qt стоит /MD, а использовать /MD библиотеки в /MT проекте нельзя. Пытался исправить /MD на /MT в makefile'ах Qt, чтобы затем пересобрать библиотеку. Исправил - получил похожие ошибки линкера, но еще на стадии сборки Qt Грустный Может кто сталкивался? как это обойти?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Июль 25, 2007, 12:17 »

Юзай посик по форуму, была уже тама по поводу  /MD и /MT флагов сборки
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Sergeich
Гость
« Ответ #2 : Июль 25, 2007, 14:19 »

1. Правишь файл $QTDIR/mkspecs/win32-msvc(...)/qmake.conf
вместо строк
  QMAKE_CFLAGS_RELEASE   = -O2 -MD
  QMAKE_CFLAGS_DEBUG   = -Zi -MDd
пишешь
  QMAKE_CFLAGS_RELEASE   = -O2 -MT
  QMAKE_CFLAGS_DEBUG   = -Zi -MTd
2. Конфигуришь кутю для статичной сборки
  configure -static -bla-bla-bla
3. Собираешь кутю.
Записан
-=s0L=-
Гость
« Ответ #3 : Июль 25, 2007, 16:16 »

А нафига вообще такое надо, если тянешь qt-шные dll-ки неужели жалко тянуть еще 2 по 300-600кб?? В папке со студией есть установщик рантайма, весит 2,5 метра, запускаешь на голой системе, он молча ставит эти dll-ки и все.
Записан
17dufa
Гость
« Ответ #4 : Июль 26, 2007, 11:15 »

спасибо

добавлено спустя 1 минуту:

 еще вопрос, насчет статической сборки, там что-то говорят про невозможность пользования плагинами, qsqlite.dll относится к плагинам?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #5 : Июль 26, 2007, 11:16 »

Цитата: "-=s0L=-"
А нафига вообще такое надо, если тянешь qt-шные dll-ки неужели жалко тянуть еще 2 по 300-600кб?? В папке со студией есть установщик рантайма, весит 2,5 метра, запускаешь на голой системе, он молча ставит эти dll-ки и все.


Если используеться configure -static небудет никаких qt-шных dll, а в сочитании с /MT ваще не будет dll
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Sergeich
Гость
« Ответ #6 : Июль 26, 2007, 11:27 »

Цитировать

еще вопрос, насчет статической сборки, там что-то говорят про невозможность пользования плагинами, qsqlite.dll относится к плагинам?
qsqlite.dll - это плагин для использования SQLite через QSQL. Если надо собрать статический вариант, надо встроить его прямо в кутевую библиотеку. Вместо configure -plugin-sql-sqlite используй configure -qt-sql-sqlite
Записан
17dufa
Гость
« Ответ #7 : Июль 26, 2007, 11:36 »

to Sergeich:
сделал как Вы говорите. Во время сборки Qt появились ошибки линковки: библиотека MSVCRT конфликтует с LIBCMT, LNK2005 .... already defined in ...
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #8 : Июль 26, 2007, 11:46 »

Цитата: "17dufa"
Во время сборки Qt появились ошибки линковки: библиотека MSVCRT конфликтует с LIBCMT, LNK2005 .... already defined in ...


Такого не должно быть. Ты делал nmake clean перед началом переконфигурации? Попробуй распаковать Qt из исходников, сделать все как говорил Sergeich. Т.е. произвести новую установку (с нуля).

ЗЫ: MSVCRT это Multithreaded, dynamic link (/MD), LIBCMT - Multithreaded, static link (/MT). Возможно дето завалялись объектники со старой сбоки, etc
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
-=s0L=-
Гость
« Ответ #9 : Июль 26, 2007, 11:59 »

Цитата: "pastor"

Если используеться configure -static небудет никаких qt-шных dll, а в сочитании с /MT ваще не будет dll


со -static да, но /MT лучше НЕ использовать, иначе потом не оберешься проблем с линкером и непонятно откуда вываливающимися access violation...
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #10 : Июль 26, 2007, 12:35 »

Цитата: "-=s0L=-"

со -static да, но /MT лучше НЕ использовать, иначе потом не оберешься проблем с линкером и непонятно откуда вываливающимися access violation...


Правда?Непонимающий Почему у меня проблем нет никаких со -static и /MT? Уже пол года собрана Qt с такими параметрами
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
17dufa
Гость
« Ответ #11 : Июль 26, 2007, 15:22 »

to pastor:
перераспаковал, вроде собралось. Спасибо.

добавлено спустя 1 минуту:

 хотя я еще удалил embed_manifest_dll и embed_manifest_exe из mkspecs\win32-msvc2005\qmake.conf "CONFIG += ..."
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #12 : Июль 26, 2007, 15:23 »

2 17dufa: You're welcome Подмигивающий
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
17dufa
Гость
« Ответ #13 : Июль 26, 2007, 16:23 »

кхем, qt собралось, а вот проект упорно не хочет. вываливаются ошибки линковки типа такой:
QtCore.lib(qcoreapplication_win.obj) : error LNK2001: unresolved external symbol _atexit
или типа такой (еще веселее):
QtSql.lib(qsqlresult.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #14 : Июль 26, 2007, 16:33 »

Попробуй пересоздать проект заново. Очисть полностью все
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.13 секунд. Запросов: 24.