Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Namelles One от Ноябрь 11, 2006, 19:41



Название: Qt + Visual Studio 2005
Отправлено: Namelles One от Ноябрь 11, 2006, 19:41
Идея какая - Студия все свои проекты компилит для работы под ДотНЕТ 2.0, в том числе даже Qt-шные...

Согласитесь - это не труЪ... Всем как среда разработки Студия меня устраивает, кроме этого...

Лечится это хоть как-то?


Название: Qt + Visual Studio 2005
Отправлено: Admin от Ноябрь 11, 2006, 19:50
переходом на VC6!


Название: Qt + Visual Studio 2005
Отправлено: Dendy от Ноябрь 11, 2006, 19:55
MinGW либо VC7.1. VC6 - не вариант, ибо слишком устарела, чтобьІ соблюдать стандарт.


Название: Qt + Visual Studio 2005
Отправлено: Namelles One от Ноябрь 11, 2006, 20:10
Да ну лесом....

Вот и юзай помледнии версии прог... :(


Название: Qt + Visual Studio 2005
Отправлено: ElderOrb от Ноябрь 11, 2006, 22:25
Цитировать
Идея какая - Студия все свои проекты компилит для работы под ДотНЕТ 2.0, в том числе даже Qt-шные...


Чё-то я не понимаю о чём речь если честно ж). Нельзя ли пояснять свою мысль?. ж) Просто я как раз использую ms vs 2005 + Qt и никаких особых отличий от ms vs 2003 или проблем не вижу. Ну почти. Кроме конечно дебильных манифестов, из-за которых приходится релизы линковать со статическим Qt и CRT


Название: Qt + Visual Studio 2005
Отправлено: Dendy от Ноябрь 12, 2006, 03:29
Дело в том, что даже со статическими Runtime-библиотеками приложение, собранное на VC2005, обращается к библиотекам .NET2x, следствие чего - невозможность запуска приложения без установленного .NET Framework 2.0.

Слишком поздно МС спохватилось лечить DLL-Hell. Хотя...

IMO, МС как раз затеяло всю фишку, чтобьІ заставить переходить старьІх юзеров .Nt-систем на Vista. Очередная принудиловка.

Способ лечения на старьІх платформах (XP получается старая) - юзать MinGW либо VC7.1.


Название: Qt + Visual Studio 2005
Отправлено: noosooth от Ноябрь 12, 2006, 12:54
Цитата: "Dendy"
Дело в том, что даже со статическими Runtime-библиотеками приложение, собранное на VC2005, обращается к библиотекам .NET2x ...


Однако это сильно неприятная новость.

Интересно, а как данный факт (c минимальными телодвижениями) можно проверить проверить на машине с
XP SP2 и установленной на ней VS2005 и соответственно .NET 2.0?


Название: Qt + Visual Studio 2005
Отправлено: Dendy от Ноябрь 12, 2006, 14:16
Никак. Попробовать запустить на Win9x.


Название: Qt + Visual Studio 2005
Отправлено: noosooth от Ноябрь 12, 2006, 16:33
Цитата: "Dendy"
Никак. Попробовать запустить на Win9x.

Уже практически оффтопик, тем не менее что-то здесь не так.

Из под VS2005 собираю болванку MFC проекта.
Runtime и MFC линкую статически, без _UNICODE и без /clr.

По крайней мере у меня это дело спокойно запускается под Win98.
.NET'а насколько я могу судить, там вроде нет.


Название: Qt + Visual Studio 2005
Отправлено: ElderOrb от Ноябрь 12, 2006, 16:35
Цитата: "Dendy"
Дело в том, что даже со статическими Runtime-библиотеками приложение, собранное на VC2005, обращается к библиотекам .NET2x, следствие чего - невозможность запуска приложения без установленного .NET Framework 2.0.

Слишком поздно МС спохватилось лечить DLL-Hell. Хотя...

IMO, МС как раз затеяло всю фишку, чтобьІ заставить переходить старьІх юзеров .Nt-систем на Vista. Очередная принудиловка.

Способ лечения на старьІх платформах (XP получается старая) - юзать MinGW либо VC7.1.


Любопытно. Надо будет нарыть тачку с 98-ой и проверить. Мне казалось что неналичие в зависимостях всяких левых дотнетовских dll-ек является достаточной гарантией что программе не будет нужен никакой .NET...


Название: Qt + Visual Studio 2005
Отправлено: Dendy от Ноябрь 12, 2006, 21:15
Возможно я ошибаюсь, но практика показьІвает обратное. Я и мой коллега программируем на Qt4, у нас два разньІх проекта, два разньІх заказчика. ПопьІтка каждого из нас собрать билд своего проекта на VS2005 и отправить своему заказчику провалилась. ПрограммьІ просто не запускались. При етом все зависимости библиотек бьІли соблюденьІ.

Если честно, я понятия не имею, зачем делать рилизьІ на VS2005. Ибо VS2003 (7.1) с прекрасно с етой задачей справляется. Кроме того, для последнего у нас есть лицензия. И не только у нас, а и у многих софтварньІх контор, пишущих под винду больше года.

Кроме того, никто не мешает собирать рилизьІ на MinGW - вообще замечательньІй вариант. Особенно с точки зрения денег. А для GPL-софта на Qt4 MinGW вообще единственньІй вариант.


Название: Qt + Visual Studio 2005
Отправлено: Alexei от Ноябрь 13, 2006, 18:45
Цитировать

Дело в том, что даже со статическими Runtime-библиотеками приложение, собранное на VC2005, обращается к библиотекам .NET2x, следствие чего - невозможность запуска приложения без установленного .NET Framework 2.0

Это Dendy так шутит :)


Название: Qt + Visual Studio 2005
Отправлено: ufna от Ноябрь 13, 2006, 20:18
это эксперсс-версия компилит все под нет платформу, это факт.
А вот полная, по моему, только с манифестами мудрит...


Название: Qt + Visual Studio 2005
Отправлено: Вячеслав от Ноябрь 13, 2006, 20:25
Сегодня поизвращался малость - все путем ... В смысле без всяких .Net'ов на линолеуме(winMe) прога (4.2 +vs2005)  взлетела нормально ....

Студия - полная .....
PS. А никто не сталкивался с воплем , что mt не может обновить манифест в библиотеке ? лечиться только полной чисткой проекта ....
Собственно это в морг ? или есть более мягкие пути ?


Название: Qt + Visual Studio 2005
Отправлено: Joe от Ноябрь 15, 2006, 19:34
редкостный боян.
никакой нафиг дотнет2 не нужен, если не компилялись с managed, ему взяться неоткуда. А вот манифесты с РОДНЫМИ MS библиотеками (просьба не путать с NET2) - они нужны, но это не такая уж большая печаль, они в папке redist есть и в лучшем виде. Никакой статиццкой линковки, никаких установок дотнет.


Название: Qt + Visual Studio 2005
Отправлено: Dendy от Ноябрь 15, 2006, 22:06
Итак, попробую привести свои догадки ПОЧЕМУ не работают проектьІ, собранньІе на VS2005.

Дело в манифестах. На 2005 студии собрать С++ проект без Манифеста нельзя. Никак. Если вьІ использовали в коде new, то должньІ слинковаться с одной из Runtime библиотек. Таких библиотек может бьІть много хороших и разньІх, причём с одним и тем же именем. ЧтобьІ программа не ушла в аут с просьбой отправить отчёт M$ из-за использования в разньІх частях программьІ разньІх версий Runtime-либ - в манифесте указьІвается откуда именно загружать оньІе. Грубо говоря - запускать программу с той версией библиотеки, с которой она бьІла собрана.

Если либа бьІла слинкована статически (MT, MTd) проблем не будет.

Иначе - загрузчик исполняемого файла попробует найти Runtime библиотеку в системе, а именно: MSVCR80.DLL.

Где оно ищет? В папке Windows/WinSxS под нужной сигнатурой, взятой из манифеста.

Внимание, грабли! Если у вас манифест, созданньІй студией по умолчанию и вьІшеуказанной папке Runtime библиотеки не окажется - из текущего каталога (в котором лежит .EXE - файл) Runtime либа загружаться не будет!

Проблема не должна касаться систем, без обновлённого загрузчика исполняемьІх файлов. Хоть убейте, я не в курсе с чем он ставится. С 2005 студией - стопудово (ибо .NET Framework в пререквизитах). С SP2 - не уверен. Вшивается ли в исполняемьІй файл? Вряд ли.

Насколько я понял из документации, если ваша программа требует специфичную версию Rumtime библиотеки - она должна ставиться в системньІй каталог (WinSxS).


Название: Qt + Visual Studio 2005
Отправлено: noosooth от Ноябрь 16, 2006, 00:48
Цитата: "Dendy"
Насколько я понял из документации, если ваша программа требует специфичную версию Rumtime библиотеки - она должна ставиться в системньІй каталог (WinSxS).


Ну ежели загрузчик новый, то msvcr80.dll и иже с ней можно подцепить и из каталога (или подкаталога) откуда стартует бинарник.
Вроде как вот здесь (http://prog.org.ru/forum/topic_3014_15.html) уже эту тему обсуждали.