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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 4 5 [6]
76  Qt / Qt-инструментарий / QtCreator: неправильна интерпретация QMAKE_TARGET, QMAKE_HOST : Май 18, 2020, 09:17
QtCreator: неправильная интерпретация QMAKE_TARGET, QMAKE_HOST

Требуется определять автоматически архитектуру и добавлять соответствующий суффикс ("-x86", "-x64" и т.п.) к выходному имени приложения или библиотеки (например, МyApp-x64.exe). Соответствующий код в pri-файле таков:
Код:
# Note: QMAKE_TARGET is empty when using Qt-v4.8.7-win32-x86-mingw32-v4.8.0-posix-dwarf.
# With Qt-v4.8.7-win32-x86-msvc2015 it is OK. Using QMAKE_TARGET as follows:
#
# contains(QMAKE_TARGET.arch, x86_64): ARCH_SUFFIX = x64
# else: ARCH_SUFFIX = $$QMAKE_TARGET.arch
#
# works fine for entire building in both Qt4 32-bit and Qt5 64-bit, but (at least) in Qt5 64-bit
# compilation single source file fails: there is 'x86' instead of 'x64' appears in makefile target
# name (object file to be compiled from source) in command line (makefiles itself are generated
# correctly). So, examine firstly QMAKE_TARGET, then QMAKE_HOST.

contains(QMAKE_TARGET.arch, x86_64): ARCH_SUFFIX = x64
else: contains(QMAKE_TARGET.arch, x86): ARCH_SUFFIX = x86
else: contains(QMAKE_HOST.arch, x86_64): ARCH_SUFFIX = x64
else: contains(QMAKE_HOST.arch, x86): ARCH_SUFFIX = x86
else {
error("Cannot determine target architecture. See ArchSuffix.pri.")
ARCH_SUFFIX = arch_unknown
}

При сборке из консоли в Windows 64-bit (qmake, nmake/mingw-make) он полностью рабочий (проверялся на Qt4 32-bit и Qt5 64-bit c MSVC и MinGW в каждом случае). QtCreator (v4.12.0 64-bit конкретно) для некоторых конфигураций разрядность определяет неправильно. Т.е., например, собираем 32-битное приложение с использованием Qt 4.8.7 32-бит: сборка из под QtCreator проходит успешно, на выходе получаем MyApp-x86.exe, но далее запуск из под QtCreator идет с ошибкой, поскольку он пытается запустить MyApp-x64.exe. QtCreator сам генерировал конфигурации сборки и запуска и для запуска неправильно сгененрировал выходное имя, т.е. неправильно обработал приведенный выше код.

Как обойти проблему?

Вообще поведение QMAKE_TARGET/QMAKE_HOST кокое-то мутное. QMAKE_TARGET иногда бывает пустым (и это корень проблемы), и приведенный выше код в этом случае делает проброс на QMAKE_HOST. Насколько это адекватно? QtCreator уже неправильно интерпретирует это.
77  Qt / Установка, сборка, отладка, тестирование / Re: Перенос Qt5 в другой каталог : Май 06, 2020, 17:29
Да это рабочий (и простой) вариант. Установил сейчас последний Креатор (4.12), так там тоже qt.conf используется. Просто можно было бы сразу без qt.conf, да и претят хардкодные абсолютные пути, уже не имеющие смысла после переноса.
78  Qt / Установка, сборка, отладка, тестирование / Re: Перенос Qt5 в другой каталог : Май 06, 2020, 15:18
qt.conf, а не qmake.conf! Я ошибся, извините.

По другому - нужно менять содержимое источника, откуда берет данные QLibraryInfo, если верно помню. В ряду прочего, например, в самих бинарях (Qt5Core и т.п.) есть хардкорные абсолютные пути, вот это и нужно изменить на новое местоположение.
79  Qt / Установка, сборка, отладка, тестирование / Перенос Qt5 в другой каталог : Май 06, 2020, 12:19
Имеем Qt, установленную в С:\Qt\5.12.3\msvc2017_64 (штатный инсталлятор). Требуется перенести ее в папку %USERNAME%\libs\Qt-5.12.3-win32-x64-msvc. Дополнительный вопрос - переменные среды (%USERNAME% в данном случае) получится задействовать для гибкости?

Раньше с Qt4 была тулза qpatch.exe. Она позволяла пропатчить прямо бинарные файлы на новый путь (не превосходящий по длине старого). Что теперь в Qt5?

Сам Qt-ный инсталлятор общие папки типа "Src", "Docs", "Examples",.. (все эти папки лежат вне директории Qt) патчит с помощью qmake.conf qt.conf. Меня интересует вариант с патчем бинарных файлов, а не с помощью qmake.conf.
80  Qt / Установка, сборка, отладка, тестирование / Re: Как в Debian 9 прописать каталог исходников Qt4 (4.8.7) в QtCreator 4.9 ? : Май 06, 2020, 11:57
У меня такой же вопрос: QtCreator: как задать пути поиска исходных файлов (переключение по F4) (http://www.prog.org.ru/index.php?topic=32684.msg241742#msg241742). Там есть одно из решений с использованием DISTFILES.

81  Qt / Qt-инструментарий / QtCreator: как задать пути поиска исходных файлов (переключение по F4) : Май 04, 2020, 13:58
Друзья, снова всех приветствую на этом форуме!

Суть вопроса проиллюстрирую на типичном примере: установленная Qt имеет структуру, в которой исходники Qt (папка Src) и бинари (папка mingw73_64, например) располагаются рядом (ибо 'prefix=..'). Задача - просматривать исходники самой Qt, т.е. по F4 нужно переключаться c *.h на *.cpp файл. Т.к. *.cpp файлов нет в mingw73_64 (каталог инсталляции), то облом. Как заставить QtCreator для поиска исходников рассматривать другие (задаваемые пути)? Уточняю, речь идет именно о просмотре, никакой сборки или отладки.

Одно из найденных решений использует DISTFILES и описано здесь https://forum.qt.io/topic/112477/go-to-source-files-by-f4-shortcut

Есть ли другие варианты? В идеале - возможность просто задавать пути поиска, не трогая файлы проекта.
Страниц: 1 ... 4 5 [6]

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