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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите портировать проект из Qt4-32 на Qt5-64 под Windows  (Прочитано 9601 раз)
Rododendron
Гость
« : Октябрь 26, 2017, 09:57 »

В связи с большими объемами информации, которые обрабатывает проект, переход от 32-битной архитектуры на 64 мне кажется наиболее правильным.
Проблема в том, что проект должен работать на Винде, и изначально он написан на Qt4.
Установить Qt4 64-бит на Винду не представляется возможным, было потрачено достаточно много времени на это впустую.
Но зато есть Qt-5.6.3-MinGW64, которая уже проверена одним достаточно большим проектом. Поэтому перенос на эту версию мне видится самым лучшим решением проблемы.
Сначала я установил такую же версию на Линукс, и собрал проект там, т.к. под Линуксом работает GDB.
Но к сожалению чуда не произошло, и в Винде программа крашится в самом начале запуска. Помогите советом, может есть какие-нибудь тулзы, о которых я не знаю, чтобы как-то локализовать проблему? Проект большой, метод выпиливания мне не хотелось бы применять. Пробовал тупо закомментировать весь main(), но все равно крашится. Никаких особых модулей программа не использует:
Код:
QT += core gui widgets sql
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Октябрь 26, 2017, 10:28 »

Я бы попробовал начать поиски проблемы с использованием valgrind под линуксом. Проанализировав пролог, возможно, найдётся виновник падения под виндой.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #2 : Октябрь 26, 2017, 12:14 »

gdb работает и под виндой, в чем проблема ? И почему нельзя пользовать msvc ?
Qt5 x64 есть в http://www.msys2.org/
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Октябрь 26, 2017, 13:32 »

Ну всем понятно что нормальное решение одно: апдейтить проект на Qt5, тогда встанет на любой платформе. Желание как-то проскочить без этого (по-быстрому) вполне понятно, но удается редко, времени все равно тратится изрядно, а толку нет.
Записан
Rododendron
Гость
« Ответ #4 : Октябрь 27, 2017, 07:51 »

Старым добрым методом выпиливания нашел проблему - библиотека vlc-qt собрана была не правильно.
А можно поподробнее, как у вас дебаггер под виндой работает? Винда 64 или 32 битная?
Все мои попытки использовать msvc потерпели неудачу, да и привык я к гнусному компилятору.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #5 : Октябрь 27, 2017, 09:43 »

Я mingw64 скачиваю отсюда
С этим комплектом и gdb поставляется. В qtcreator при создании комплекта для сборки необходимо указать путь к нему.

Компилятор msvc (я пробовал 2015) не особо справляется с c++11 и выше. Имхо, для того, чтобы избежать перепроверок компилируемости кода под разными платформами лучше использовать один компилятор.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #6 : Октябрь 27, 2017, 11:53 »

А можно поподробнее, как у вас дебаггер под виндой работает? Винда 64 или 32 битная?
Как я уже писал выше я использую msys2. Там есть и компилятор gcc с работающим gdb, и сборки Qt4, Qt5 под 64 бита.


Все мои попытки использовать msvc потерпели неудачу, да и привык я к гнусному компилятору.
msvc 2017 уже почти нормальный. под него есть стандарная 64-битная сборка Qt5.9
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #7 : Октябрь 27, 2017, 15:09 »

alex312, какой версии mingw64 в msys2?
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #8 : Октябрь 27, 2017, 16:40 »

alex312, какой версии mingw64 в msys2?
$ g++ -v
Using 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

« Последнее редактирование: Октябрь 28, 2017, 11:10 от alex312 » Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #9 : Октябрь 30, 2017, 09:18 »

Не совсем понял update. Но, я больше интересовался версией, с помощью которого собираются пользовательские проекты.
Короче говоря, с поддержкой c++17 всё в порядке Улыбающийся Надо попробовать.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #10 : Октябрь 30, 2017, 15:24 »

О Божечки, какая это удобная штука. Почему я раньше о ней не знал? Как дурак обновлял все библиотеки скачивая с сайтов производителей, компилировал библиотеки, поставляемые в виде исходников.
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #11 : Октябрь 30, 2017, 16:25 »

Это вы про что?
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #12 : Октябрь 30, 2017, 19:14 »

Открыл для себя msys2
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #13 : Октябрь 30, 2017, 21:21 »

студия community не подойдет?
самый вменяемый отладчик там, имхо.
крэш найти быстро поможет.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Rododendron
Гость
« Ответ #14 : Ноябрь 28, 2017, 10:25 »

Всем спасибо за отклик. Решил проблему с помощью Линукс на виртуалке. Все равно Валгринд только под Линь существует, так что не стал искать работающий отладчик под Вин. Но на будущее запомнил, что в msys2 работающий отладчик, на досуге как-нибудь гляну.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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