Название: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: Rododendron от Октябрь 26, 2017, 09:57 В связи с большими объемами информации, которые обрабатывает проект, переход от 32-битной архитектуры на 64 мне кажется наиболее правильным.
Проблема в том, что проект должен работать на Винде, и изначально он написан на Qt4. Установить Qt4 64-бит на Винду не представляется возможным, было потрачено достаточно много времени на это впустую. Но зато есть Qt-5.6.3-MinGW64, которая уже проверена одним достаточно большим проектом. Поэтому перенос на эту версию мне видится самым лучшим решением проблемы. Сначала я установил такую же версию на Линукс, и собрал проект там, т.к. под Линуксом работает GDB. Но к сожалению чуда не произошло, и в Винде программа крашится в самом начале запуска. Помогите советом, может есть какие-нибудь тулзы, о которых я не знаю, чтобы как-то локализовать проблему? Проект большой, метод выпиливания мне не хотелось бы применять. Пробовал тупо закомментировать весь main(), но все равно крашится. Никаких особых модулей программа не использует: Код: QT += core gui widgets sql Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: __Heaven__ от Октябрь 26, 2017, 10:28 Я бы попробовал начать поиски проблемы с использованием valgrind под линуксом. Проанализировав пролог, возможно, найдётся виновник падения под виндой.
Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: alex312 от Октябрь 26, 2017, 12:14 gdb работает и под виндой, в чем проблема ? И почему нельзя пользовать msvc ?
Qt5 x64 есть в http://www.msys2.org/ Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: Igors от Октябрь 26, 2017, 13:32 Ну всем понятно что нормальное решение одно: апдейтить проект на Qt5, тогда встанет на любой платформе. Желание как-то проскочить без этого (по-быстрому) вполне понятно, но удается редко, времени все равно тратится изрядно, а толку нет.
Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: Rododendron от Октябрь 27, 2017, 07:51 Старым добрым методом выпиливания нашел проблему - библиотека vlc-qt собрана была не правильно.
А можно поподробнее, как у вас дебаггер под виндой работает? Винда 64 или 32 битная? Все мои попытки использовать msvc потерпели неудачу, да и привык я к гнусному компилятору. Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: __Heaven__ от Октябрь 27, 2017, 09:43 Я mingw64 скачиваю отсюда (https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/7.2.0/threads-posix/seh/)
С этим комплектом и gdb поставляется. В qtcreator при создании комплекта для сборки необходимо указать путь к нему. Компилятор msvc (я пробовал 2015) не особо справляется с c++11 и выше. Имхо, для того, чтобы избежать перепроверок компилируемости кода под разными платформами лучше использовать один компилятор. Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: alex312 от Октябрь 27, 2017, 11:53 А можно поподробнее, как у вас дебаггер под виндой работает? Винда 64 или 32 битная? Как я уже писал выше я использую msys2. Там есть и компилятор gcc с работающим gdb, и сборки Qt4, Qt5 под 64 бита.Все мои попытки использовать msvc потерпели неудачу, да и привык я к гнусному компилятору. msvc 2017 уже почти нормальный. под него есть стандарная 64-битная сборка Qt5.9Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: __Heaven__ от Октябрь 27, 2017, 15:09 alex312, какой версии mingw64 в msys2?
Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: alex312 от Октябрь 27, 2017, 16:40 alex312, какой версии mingw64 в msys2? $ g++ -vUsing built-in specs. COLLECT_GCC=D:\bin\msys64\mingw64\bin\g++.exe COLLECT_LTO_WRAPPER=D:/bin/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.2.0/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: ../gcc-7.2.0/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include --libexecdir=/mingw64/lib --enable-bootstrap --with-arch=x86-64 --with-tune=generic --enable-languages=c,lto,c++,objc,obj-c++,fortran,ada --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-pkgversion='Rev1, Built by MSYS2 project' --with-bugurl=https://sourceforge.net/projects/msys2 --with-gnu-as --with-gnu-ld Thread model: posix gcc version 7.2.0 (Rev1, Built by MSYS2 project) Update: Перечитал вопрос. $ pacman -Ss crt mingw32/mingw-w64-i686-crt-git 5.0.0.4966.1eee2140-1 (mingw-w64-i686-toolchain) [установлен] MinGW-w64 CRT for Windows mingw64/mingw-w64-x86_64-crt-git 5.0.0.4966.1eee2140-1 (mingw-w64-x86_64-toolchain) [установлен] MinGW-w64 CRT for Windows Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: __Heaven__ от Октябрь 30, 2017, 09:18 Не совсем понял update. Но, я больше интересовался версией, с помощью которого собираются пользовательские проекты.
Короче говоря, с поддержкой c++17 всё в порядке :) Надо попробовать. Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: __Heaven__ от Октябрь 30, 2017, 15:24 О Божечки, какая это удобная штука. Почему я раньше о ней не знал? Как дурак обновлял все библиотеки скачивая с сайтов производителей, компилировал библиотеки, поставляемые в виде исходников.
Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: sergek от Октябрь 30, 2017, 16:25 Это вы про что?
Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: __Heaven__ от Октябрь 30, 2017, 19:14 Открыл для себя msys2
Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: Racheengel от Октябрь 30, 2017, 21:21 студия community не подойдет?
самый вменяемый отладчик там, имхо. крэш найти быстро поможет. Название: Re: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows Отправлено: Rododendron от Ноябрь 28, 2017, 10:25 Всем спасибо за отклик. Решил проблему с помощью Линукс на виртуалке. Все равно Валгринд только под Линь существует, так что не стал искать работающий отладчик под Вин. Но на будущее запомнил, что в msys2 работающий отладчик, на досуге как-нибудь гляну.
|