Russian Qt Forum
Ноябрь 23, 2024, 08:24
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
VS2005 и голый XP
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: VS2005 и голый XP (Прочитано 14726 раз)
17dufa
Гость
VS2005 и голый XP
«
:
Июль 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
Сообщений: 2901
VS2005 и голый XP
«
Ответ #1 :
Июль 25, 2007, 12:17 »
Юзай посик по форуму, была уже тама по поводу /MD и /MT флагов сборки
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Sergeich
Гость
VS2005 и голый XP
«
Ответ #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=-
Гость
VS2005 и голый XP
«
Ответ #3 :
Июль 25, 2007, 16:16 »
А нафига вообще такое надо, если тянешь qt-шные dll-ки неужели жалко тянуть еще 2 по 300-600кб?? В папке со студией есть установщик рантайма, весит 2,5 метра, запускаешь на голой системе, он молча ставит эти dll-ки и все.
Записан
17dufa
Гость
VS2005 и голый XP
«
Ответ #4 :
Июль 26, 2007, 11:15 »
спасибо
добавлено спустя 1 минуту:
еще вопрос, насчет статической сборки, там что-то говорят про невозможность пользования плагинами, qsqlite.dll относится к плагинам?
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
VS2005 и голый XP
«
Ответ #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
Гость
VS2005 и голый XP
«
Ответ #6 :
Июль 26, 2007, 11:27 »
Цитировать
еще вопрос, насчет статической сборки, там что-то говорят про невозможность пользования плагинами, qsqlite.dll относится к плагинам?
qsqlite.dll - это плагин для использования SQLite через QSQL. Если надо собрать статический вариант, надо встроить его прямо в кутевую библиотеку. Вместо configure -plugin-sql-sqlite используй configure -qt-sql-sqlite
Записан
17dufa
Гость
VS2005 и голый XP
«
Ответ #7 :
Июль 26, 2007, 11:36 »
to Sergeich:
сделал как Вы говорите. Во время сборки Qt появились ошибки линковки: библиотека MSVCRT конфликтует с LIBCMT, LNK2005 .... already defined in ...
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
VS2005 и голый XP
«
Ответ #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=-
Гость
VS2005 и голый XP
«
Ответ #9 :
Июль 26, 2007, 11:59 »
Цитата: "pastor"
Если используеться configure -static небудет никаких qt-шных dll, а в сочитании с /MT ваще не будет dll
со -static да, но /MT лучше НЕ использовать, иначе потом не оберешься проблем с линкером и непонятно откуда вываливающимися access violation...
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
VS2005 и голый XP
«
Ответ #10 :
Июль 26, 2007, 12:35 »
Цитата: "-=s0L=-"
со -static да, но /MT лучше НЕ использовать, иначе потом не оберешься проблем с линкером и непонятно откуда вываливающимися access violation...
Правда?
Почему у меня проблем нет никаких со -static и /MT? Уже пол года собрана Qt с такими параметрами
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
17dufa
Гость
VS2005 и голый XP
«
Ответ #11 :
Июль 26, 2007, 15:22 »
to pastor:
перераспаковал, вроде собралось. Спасибо.
добавлено спустя 1 минуту:
хотя я еще удалил embed_manifest_dll и embed_manifest_exe из mkspecs\win32-msvc2005\qmake.conf "CONFIG += ..."
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
VS2005 и голый XP
«
Ответ #12 :
Июль 26, 2007, 15:23 »
2 17dufa: You're welcome
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
17dufa
Гость
VS2005 и голый XP
«
Ответ #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
Сообщений: 2901
VS2005 и голый XP
«
Ответ #14 :
Июль 26, 2007, 16:33 »
Попробуй пересоздать проект заново. Очисть полностью все
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...