Название: Кроссплатформенность QT ;D Отправлено: v01d от Апрель 01, 2011, 10:19 Скомпилировал проект Qt в Win7 на других Win7 все отлично работает.
Решил проверить на WinXP и вот получаю такого рода сообщение - Ошибка при инициализации приложения 0xc0150002 как собрать проект что бы он работал и на XP? Название: Re: Кроссплатформенность QT ;D Отправлено: Пантер от Апрель 01, 2011, 10:26 Компилятор какой? Студийный, небось?
Название: Re: Кроссплатформенность QT ;D Отправлено: v01d от Апрель 01, 2011, 10:39 Компилятор какой? Студийный, небось? mingwНазвание: Re: Кроссплатформенность QT ;D Отправлено: Пантер от Апрель 01, 2011, 10:44 Либы все положил? Что из себя представляет прога и что линкует?
Делаешь дебажную версию и гонишь ее под gdb на ХРюшной машине. Название: Re: Кроссплатформенность QT ;D Отправлено: v01d от Апрель 01, 2011, 11:13 Либы все положил? Что из себя представляет прога и что линкует? Прога использует xml, network, crypto плагинДелаешь дебажную версию и гонишь ее под gdb на ХРюшной машине. гуи и коре все кидается в папку как и на машине с win7, еще раз замечу программа работает на других win7 на которых не стоит qt а вот на winxp получаю ошибку при помощи depends смотрел библиотеки скопировал все что нужно ему было из win7 запускаться стала часть приложения, после определенных действий падает с ошибкой инструкция по адресу 0x64428bb4 обратилась к памяти по адресу 0x00000000 память не может быть read программа падает работая с qca либо qnetwork Название: Re: Кроссплатформенность QT ;D Отправлено: Denjs от Апрель 01, 2011, 12:09 Соберайте все на WinXP. может оно там пр сборке привязалось к каким-либо "чисто семерочным" библиотекам? Вы кастати в своем проекте какие там API-функции не используете?
Это-ж виндоус, радуйтесь что обратная совместимость хоть как-то сохраняется... а вы совместимость "при даунгрейде" хотите))) это же виндоус! ;) У меня немногим другая ситуация. - Собираю на WinXP - под Windows7 работает, под Win2000 - нет. Название: Re: Кроссплатформенность QT ;D Отправлено: v01d от Апрель 01, 2011, 12:33 на сколько я знаю opera написана на Qt и инстялятор для windows у нее 1 на все версии
никакой win api не используется, только qt Название: Re: Кроссплатформенность QT ;D Отправлено: Пантер от Апрель 01, 2011, 12:37 1. Opera не на Qt.
2. делай дистр на XP и он запустится под всеми более старшими версиями винды (ну, практически). Название: Re: Кроссплатформенность QT ;D Отправлено: v01d от Апрель 01, 2011, 12:58 1. Opera не на Qt. спасибо за ответы)2. делай дистр на XP и он запустится под всеми более старшими версиями винды (ну, практически). не знаете почему при отладке в eclipse пишет not found source for main? но пройдя дебагером дальше когда вызывается уже мой сppшник с классом он его подключает, а вот main функцию он не видит может можно как то явно указать путь до main.cpp Название: Re: Кроссплатформенность QT ;D Отправлено: maint от Апрель 01, 2011, 13:14 Скомпилировал проект Qt в Win7 на других Win7 все отлично работает. это вопрос совместимости винды. Не зря в семерке появился режим совместимости с ХР, фактически виртуальная машина. А уж наоборот, работать уж точно не обязана сборкаРешил проверить на WinXP и вот получаю такого рода сообщение - Ошибка при инициализации приложения 0xc0150002 как собрать проект что бы он работал и на XP? Название: Re: Кроссплатформенность QT ;D Отправлено: v01d от Апрель 01, 2011, 13:26 мне интересно узнать как писать программы что бы они работали как, opera firefox и т.д. что бы не нужно было по 1 версии под каждый windows, как такого можно добиться?
Название: Re: Кроссплатформенность QT ;D Отправлено: Пантер от Апрель 01, 2011, 13:49 Вот найдешь багу, из-за которой у тебя все падает, исправишь ее, тогда падать не будет.
Название: Re: Кроссплатформенность QT ;D Отправлено: panAlexey от Апрель 01, 2011, 13:49 2. делай дистр на XP и он запустится под всеми более старшими версиями винды (ну, практически). Пусть делает дистр на win 2000 по такой логике : )Название: Re: Кроссплатформенность QT ;D Отправлено: Пантер от Апрель 01, 2011, 13:50 panAlexey, вполне нормальное решение.
Название: Re: Кроссплатформенность QT ;D Отправлено: Denjs от Апрель 01, 2011, 13:53 это вопрос совместимости винды. Не зря в семерке появился режим совместимости с ХР, фактически виртуальная машина. А уж наоборот, работать уж точно не обязана сборка во! идея. Путсть автор топика проводит сборку под командной строкой, запущенной "в режиме совместимости" )))) ну или Qt Creator запустит "в режиме совместимости"? может и "ошибка" при запуске под хренью исчезнет? потому что имхо, тут уже не вопрос о кроссплатформенности QT, - это вопрос совместимости бинарных сборок, программы и конкретных версий виндоус. А этого Qt и не должен гарантировать. _____________________________________________________________ Qt обеспечивает кроссплатформенность исходников - причем в том смысле, что вы можете ваши исходники без переработки собрать под разными осями, и он это успешно обеспечивает. А вот будет ли запускаться собранный бинарник под старыми версиями венды, или даже например под вайном - этого никто не гарантирует. Это тоже самое, что и например требовать что бы бинарное представление STL-типов было одно и то-же у разных компиляторов. или что бы бинарник собранный для одного дистрибутива линукс, работал под другим дистрибутивом - он же может, но не обязан) >:( предлагаю топик переобозвать, потому что своим названием он смеет объявлять что Qt дкскать "не кроссплатформенен", потому что бинарные сборки не совместимы с теми, что нужны для "некоторых" модификаций ОС, что в корне не верно ;) анафему автору за заблуждения пока объявлять не будем :) Название: Re: Кроссплатформенность QT ;D Отправлено: Denjs от Апрель 01, 2011, 14:24 По топику: исходя из написанного на сайте граблепроизводителя по поводу 0xc0150002 - http://support.microsoft.com/kb/822520 , предлагаю автору обновить сервис пак на венде, на которой он проверяет "кроссплатформеность".
Название: Re: Кроссплатформенность QT ;D Отправлено: v01d от Апрель 01, 2011, 16:22 По топику: исходя из написанного на сайте граблепроизводителя по поводу 0xc0150002 - http://support.microsoft.com/kb/822520 , предлагаю автору обновить сервис пак на венде, на которой он проверяет "кроссплатформеность". обновлял не помоглоНазвание: Re: Кроссплатформенность QT ;D Отправлено: mitrich от Апрель 02, 2011, 12:40 при помощи depends смотрел библиотеки скопировал все что нужно ему было из win7 Ничего лишнего случаем не взял (msvcrt.dll какой-нибудь и т.д)? Что конкретно и откуда (неужто из системного каталога винды?) ты брал? По поводу советов собирать на XP/2000: С чего бы тот же самый компилятор с теми же идентичными либами и хидерами (которые все с ним поставляются, в винде нет никаких системных *.lib/lib*.a/*.h) будет давать различный бинарник? Если в программе нет никаких #define WINVER ***, #ifdef ***, либы Qt также не пересобирались с изменениями то результат должен быть байт-в-байт идентичным. Название: Re: Кроссплатформенность QT ;D Отправлено: kdm от Апрель 02, 2011, 13:00 Офф.: Да что вы так накинулись. Человек может не оч. понял, что значит кроссплатформенность :)
Название: Re: Кроссплатформенность QT ;D Отправлено: Denjs от Апрель 02, 2011, 18:08 а не слабо ли аввтору выложить пример софтины которую он собирает по семеркой и "не может запустить" по вихренью? или это у него с любым софтом даже типа хелловорда?
и какой у вас там сервис пак номер под винхренью? Название: Re: Кроссплатформенность QT ;D Отправлено: Denjs от Апрель 02, 2011, 18:29 Ничего лишнего случаем не взял (msvcrt.dll какой-нибудь и т.д)? Что конкретно и откуда (неужто из системного каталога винды?) ты брал? вот про импорт msvcrt.dll :: http://www.prog.org.ru/index.php?topic=11664.msg72132Цитировать msvcrt - это с рантайм для компиляторов MS. для разных компиляторов он разный: 6 - msvcrt, 7 - msvcr70, 7.1 - msvcr71 8.0 - msvcr80 и так далее. Mingw не имеет своего рантайм а использует MS-овский. По умолчанию msvcrt - как самый распространённый. но это было 2 года назад... что сейчас - недо проверить.... но уж очень проблемы автора мне напоминают http://ru.wikipedia.org/wiki/DLL_hell Давайте конкретнее по файлам: что у авора в зависимостях и что и откуда он копировал? и что у зависимостях у тех библиотек которые он копировал? ______________________________________________ upd: смотрел я у себя сейчас что там у меня в моих софтинах из зависимостей. смотрел с помошью http://ru.wikipedia.org/wiki/Dependency_Walker значит что й меня первыми пунктами? сразу от моего екзешика?: первые 3 пункта. kernel32.dll, mingwm10.dll, msvcrt.dll .... и что получается? - программа при переносе из винсем в хрень - должна нормально работать с другим kernel32.dll ? моя вот софтина - собранная под хренью - под win2k даже не стартует))) мой опыт подсказывает мне (да и думаю согласитесь со мной), что ждать от скомпилённого бинарника, что он будет нормально работать с подсунутой библиотекой другой версии - да ещё и предыдущей - гм... несколько наивно... о причинах, надеюсь раскажут более опытные коллеги, которые в деталях знают как происходит вызов функций библиотек, что производится при сборке/линковке и т.п. (кстати - детали расскажите? мне интересно) это ещё и к вопросу mitrich озвученному выше - полагаю бинарники при сборке с разными версиями сторонних библиотек таки будут разными... не? kernel32.dll надеюсь автор не стал тащить с собой из семерки в хрень? да впрочем даже если притащить, то не стоит ждать что оно будет работать нормлаьно... потому, собственно топик автора предлагаю закрыть, из-за самой порочности попытки собрать программу под win7 и ждать что она будет работать под winXP - да ещё и обвинять в том что раз не работает - то это Qt финоват... ;D Название: Re: Кроссплатформенность QT ;D Отправлено: ufna от Апрель 02, 2011, 20:33 Собираю под семеркой, на ХР отлично работает. Что я делаю не так? :)
Название: Re: Кроссплатформенность QT ;D Отправлено: Denjs от Апрель 02, 2011, 23:38 Собираю под семеркой, на ХР отлично работает. Что я делаю не так? :) блин... ну как дети ))) вы "делаете неправильно задавая вопрос ЧЯДНТ"! ... детали, детали, детали... ГДЕ?! я бы сказал что вам лично повезло, но давайте в конце концов собирать статистику и смотреть что у кого не так?! полагаю для начала хватит этого: 1) Конкретные версии обоих вендовозов в студию. вид, сервис пак, версия... из свойств моего компьютера думаю будет достаточно. +1.5) установлены ли на исходной машине и на ХРени всякие ".NET Framework Version 2.0 Redistributable Package" и прочее? 2) на всякий случай - версию QtSDK тоже дайте... 2.2) как запускается сборка ПО (креатор работает как обычная совтина или "в режиме совместимости"? окружение сборки какое? или из консоли собираете? ) 2.3) версия компилятора (minGw или студийный? ) 3) думаю список зависимостей который показал Dependency Walker (http://dependencywalker.com/). Думаю, если сохраните из него .dwi файл - будет достаточно. 3.5) версии KERNEL32.DLL и MSVCRT.DLL под win7 и winxp - это думаю надо будет напечатать руками,просмотрев свойства в Dependency Walker. соберите статистику? вы, ufna и вы, v01d тоже. вот когда себерем данные - сравним - будем думать что у кого и почему не работает и что сделать. Название: Re: Кроссплатформенность QT ;D Отправлено: ufna от Апрель 03, 2011, 11:33 1. Писал под вистой, что без SP1, что с ним - все на ХР работает на ура.
Пишу теперь под семеркой, проф. версия, что без SP1 была, что теперь с SP1. Все работает на ура. .NET'ами не гружусь, тупо последние всегда. Код: ------------------ 2. QtSDK - ранее не было, от 4.4 версии (если не ранее, не помню) сидел на висте, с 4.5/4.6 и теперь 4.7 - семерка. Сейчас QtSDK которая сама обновляется, хз какая версия. Креатор как обычная софтина и студия как обычная софтина. Студией под вистой билды делал, счас под семеркой только для винце собираю. Для десктопа мингв. 3. http://ufna.ru/upload/soft/temp/NovaBook.dwi Я уже много раз переставлял систему, сменил четыре разных компа, и всегда все работает :) Название: Re: Кроссплатформенность QT ;D Отправлено: v01d от Апрель 06, 2011, 08:35 1)
Microsoft Windows 7 Ultimate (EN) 6.1.7600 N/A Build 7600 установлен Microsoft Framework 4 и еще Microsoft Visual 2008 C++ Redistributable Microsoft Windows XP Professional (RUS) 5.1.2600 Service Pack 3 сборка 2600 сборка из коробки, в панель управления>установка программа не наблюдается отдельно установленных каких либо фреймворков 2) Qt 4.7.2 E:\Perl64\site\bin;E:\Perl64\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;E:\MySQL\bin;E:\Qt472\minGW\bin;E:\Qt472\qt\bin;E:\Python27 2.1) комплируется все из под Eclipse 2.2) компилятор из Qt 4.7.2 инсталлера 3.) http://ifolder.ru/22808279 Название: Re: Кроссплатформенность QT ;D Отправлено: v01d от Апрель 06, 2011, 09:21 было бы здорово еще увидеть .pro файлы
Код: TEMPLATE = app |