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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Что посоветуете к компилятору VC++ 2003?  (Прочитано 15315 раз)
cresta
Гость
« : Сентябрь 03, 2007, 16:42 »

Добрый день. В порядке изучения qt и самообразования переделал свою старую виндовую прогу под линукс. Использовал qt 3.3.4. На свою голову добавил некоторые новые возможности. Один из пользователей виндового старого варианта увидел её и теперь взял за горло, хочет такую же, только под винду.
Поэтому обращаюсь за советом: Код готовый есть, писать новый лень, надо только откомпилировать его под виндой.
Под виндой пользуюсь консольным вариантом vc++ 2003, т.е студии как таковой нет, просто cl.exe, link.exe и набор либ и хидеров. Компилирую из батника. Что лучше использовать в такой ситуации? Насколько много переделок кода потребуется, если использовать пакет qt-win-commercial-desktop-4.0.0-vs2003.exe или пакет qt-win-eval-desktop-4.0.0-vs2003.exe ? И насколько удачно они будут совместимы с моим компилятором? У кого-нибудь есть опыт использования консольного варианта и qt?
А то нет уверенности, что удастся настроить эту пару для работы вместе (особенно в части nmake или как его там)

Есть qt-win-commercial-3.3.8 с лекарством на qt.tttxp.ru, тоже непонятно, насколько он будет совместим с моим компилятором? Столько слов было сказано, что ms компиляторы то ли поддерживаются, то ли не поддерживаются, и не знаешь, что и выбирать Грустный

Что посоветуете?
Записан
denka
Гость
« Ответ #1 : Сентябрь 03, 2007, 16:52 »

На сколько я знаю: что Qt3, что Qt4 поддерживают VC++ 2003. Насчет перехода на четверку то тут зависит от того что ты использовал в своей программе так что помочь тебе может только раздел Porting from Qt 3 to Qt 4 Улыбающийся. Кстате 4.0.0 я думаю не самый лучшый выбор. Я бы на твоем месте брал 4.2.3 по крайней мере там исправлены многие ошибки предыдущих версий.
Записан
QCasper
Гость
« Ответ #2 : Сентябрь 03, 2007, 16:59 »

эээ.. а почему так принципиально использовать msvc? чем не угодил gcc?
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #3 : Сентябрь 03, 2007, 17:39 »

Если нет желания с портированием кода под Qt4 (а скорее всего просто так это сделать не получится), то однозначно рекомендую поставить с Лесного базара Qt 3.3.8. Уже достаточно давно работаю с ней именно под VC++ 2003 и не заметил никаких проблем. Для сборки Qt в варианте студии вполне достаточно описанного набора (компилятор, линкер, либы,...). Только надо установку Qt запускать из батника, чтобы нашлись либы и хидеры. По поводу совместимости - код написанный на студии совершенно спокойно компилили в Линухе. Поэтому, если нет специфических вызовов - все должно пройти гладко.
Записан
cresta
Гость
« Ответ #4 : Сентябрь 03, 2007, 17:44 »

Кстате 4.0.0 я думаю не самый лучшый выбор. Я бы на твоем месте брал 4.2.3 по крайней мере там исправлены многие ошибки предыдущих версий.

Варианты с версией 4.0.0 всплыли потому, что на них есть ключи, а на 4.2.3 лекарства нет.
В программе вроде ничего особенного не используется: QListView, QTextBrowser, QTabWidget, QLineEdit, QLabel, QPushButton. Есть ещё QSqlQuery (QMYSQL3), но под виндой я делал класс для работы с MySQL-сервером (примерный аналог QSqlQuery) на основе libmysql.dll, думаю его использовать. Надеюсь, эти классы принципиальных изменений не претерпели по сравнению с версией 3.3.4.

эээ.. а почему так принципиально использовать msvc? чем не угодил gcc?

Про gcc: не столько он не угодил, сколько его у меня нет, не знаю, стоит ли тягать ещё и его? С ним проще состыковаться?

однозначно рекомендую поставить с Лесного базара Qt 3.3.8.

А где этот Лесной базар располагается? Случаем не на qt.tttxp.ru ?
Записан
Sergeich
Гость
« Ответ #5 : Сентябрь 03, 2007, 18:39 »

Варианты с версией 4.0.0 всплыли потому, что на них есть ключи, а на 4.2.3 лекарства нет.
Разве лицензия на базаре не подходит к 4.3.1 или 4.2.3?
Записан
cresta
Гость
« Ответ #6 : Сентябрь 03, 2007, 19:53 »

Разве лицензия на базаре не подходит к 4.3.1 или 4.2.3?
[/quote]

Откуда же мне это знать Улыбающийся Я не пробовал. Часто ведь бывает, что ключи к одной версии программы не подходят к другой. Поэтому уверенности нет. Но раз начальник базара сказал - видимо должны подойти Улыбающийся

В общем спасибо за советы. Попробую сначала qt3.3.8. Hellraiser, если что, далеко не прячся Улыбающийся) Коль скоро у тебя есть опыт совмещения vc 2003 c qt3.3.8 может поможешь чем Улыбающийся
Если будет запарка - тогда буду пробовать 4.2.3
Записан
QCasper
Гость
« Ответ #7 : Сентябрь 04, 2007, 08:48 »

эээ.. а почему так принципиально использовать msvc? чем не угодил gcc?

Про gcc: не столько он не угодил, сколько его у меня нет, не знаю, стоит ли тягать ещё и его? С ним проще состыковаться?


С ним проще хотя бы потому, что не надо искать никаких ключей для коммерческих версий. Достаточно скачать OpenSource версию Qt.
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #8 : Сентябрь 04, 2007, 16:49 »

С ним проще хотя бы потому, что не надо искать никаких ключей для коммерческих версий. Достаточно скачать OpenSource версию Qt.
Если речь идет о Qt4 - согласен. Но официального OpenSource Qt3 под Винду нет, есть только версии портированные энтузиастами на SourceForge.net http://sourceforge.net/project/showfiles.php?group_id=49109
Записан
cresta
Гость
« Ответ #9 : Сентябрь 04, 2007, 17:40 »

В общем fail произошел Грустный
qt 3.3.8 скачал, распаковал в C:\Qt\3.3.8. Установил переменные INCLUDE, LIB и PATH, чтобы конфигуратор нашел либы, хидеры и компилятор с линкером. Утилиту nmake я взял из winddk (в VC Toolkit'e её не было) и положил в C:\Qt\3.3.8\bin. После запуска инсталлятор ругнулся, что не найдена mspdb80.dll. Я это игнорировал, и продолжил.После конфигурирования вроде пошел процесс сборки с выводом лога и даже успела собраться либа qtmain.lib, но через некоторое время произошел сбой. Вот на эту команду (была выведена в лог):
link /NOLOGO /DELAYLOAD:comdlg32.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:winmm.dll /DELAYLOAD:wsock32.dll /DELAYLOAD:winspool.dll /BASE:0x39D00000 /DELAYLOAD:opengl32.dll /SUBSYSTEM:WINDOWS /DLL /incremental:no /VERSION:3.38 /LIBPATH:"C:\Qt\3326ED~1.8\lib" /OUT:C:\Qt\3326ED~1.8\lib\qt-mt338.dll @%USERPROFILE%\LOCALS~1\Temp\nma02984.
Линкер отозвался так:
LINK : fatal error LNK1181: cannot open input file 'delayimp.lib'
NMAKE : fatal error U1077: 'link' : return code '0x49d'
Stop.
NMAKE : fatal error U1077: 'C:\Qt\3.3.8\bin\nmake.exe' : return code '0x2'
Stop.

Что это за либа такая delayimp.lib? Посмотрел по всему винту, ничего похожего не нашел. Она должна быть в пакете qt или в тулките?
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #10 : Сентябрь 04, 2007, 18:03 »

Цитировать
После запуска инсталлятор ругнулся, что не найдена mspdb80.dll.
Это DLL от VisualStudio 2005!!! В 2003 должна быть mspdb71.dll. Требуется для создания дебажных версий, поэтому Qt в таком раскладе лучше собрать релизовскую.
delayimp.lib - штатная либа от VS, должна быть в либах (в смысле VC7\Lib).
Установлена ли переменная QMAKESPEC?
« Последнее редактирование: Сентябрь 04, 2007, 18:23 от Hellraiser » Записан
cresta
Гость
« Ответ #11 : Сентябрь 04, 2007, 18:39 »

В визарде я выбрал компилятор Microsoft Visual C++.NET. Есть ещё Microsoft Visual C++ (это версия 6.0) и msvc2005 (8.0) По умолчанию предлагается msvc2005, и поэтому запрашивается mspdb80.dll. Если выбрать Microsoft Visual C++, то спрашивает mspdb60.dll, если выбрать Microsoft Visual C++.NET - то ничего не спрашивает (видимо находит эту mspdb71.dll)

Либы delayimp.lib нету. Может приаттачишь, если у тебя есть такая?
А переменная QMAKESPEC установлена: win32-msvc.net
Я так понял, что дело только в либе delayimp.lib. Ведь фактически сборка начинается и происходит, т.е. makefile сделан верно, и nmake работает.
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #12 : Сентябрь 04, 2007, 19:00 »

Цитировать
Либы delayimp.lib нету. Может приаттачишь, если у тебя есть такая?
С удовольствием, вот только куда  Непонимающий У меня никаких кнопок по аттачу нет.
Записан
cresta
Гость
« Ответ #13 : Сентябрь 04, 2007, 20:11 »

Оказывается действительно нету Улыбающийся
Ну тогда на мыло кинь: ua6xhy@mail.ru
Записан
cresta
Гость
« Ответ #14 : Сентябрь 05, 2007, 00:46 »

Видимо всё-таки не состыкуется 3.3.8 с моим Visual C++ 2003 Toolkit.
Нашел delayimp.lib, потом пришлось искать msvcrt.lib (взял из ddk), потом споткнулся на comsupp.lib... Излазил весь ftp.microsoft - не нашел:( Если и найду, неизвестно, что ещё понадобится. Блин, и что за мода компилировать из исходников? Неужели нельзя было положить в инсталлятор бинарники. тем более что это не линукс, где миллион версий, а винда, где нестыковок из-за разных билдов практически нет Грустный
А ставить qt-4.x.x чтобы переделать всё заново - так проще с нуля на winapi всё сделать. Видимо так и придётся.
Спасибо всем.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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