Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Acrobat от Сентябрь 11, 2019, 14:10



Название: qmake target bits
Отправлено: Acrobat от Сентябрь 11, 2019, 14:10
Как указать в опции qmake целевую разрядность? Или это в nmake указывается?


Название: Re: qmake target bits
Отправлено: ViTech от Сентябрь 11, 2019, 14:44
В основном, целевая разрядность определяется инструментом сборки (компилятором, который входит в toolchain/Kit). Каким toolchain'ом собирается проект, такая разрядность и будет. Так что в nmake. В pro-файле можно определить целевую архитектуру (https://wiki.qt.io/Technical_FAQ#How_can_I_detect_in_the_.pro_file_if_I_am_compiling_on_a_32_bit_or_a_64_bit_platform.3F).


Название: Re: qmake target bits
Отправлено: Acrobat от Сентябрь 11, 2019, 14:51
понял, спасибо


Название: Re: qmake target bits
Отправлено: Acrobat от Сентябрь 11, 2019, 15:54
что-то не то, разрядность нужно указывать в qmake, nmake он всегда свой для целевой платформы. Пробовал в .pro прописать TARGET = 64bit_binary, ничего не изменилось, на выходе:
Qt5Sql.lib(Qt5Sql.dll) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'


Название: Re: qmake target bits
Отправлено: ViTech от Сентябрь 11, 2019, 16:14
How to: Enable a 64-Bit, x64 hosted MSVC toolset on the command line (https://github.com/MicrosoftDocs/cpp-docs/blob/master/docs/build/how-to-enable-a-64-bit-visual-cpp-toolset-on-the-command-line.md#how-to-enable-a-64-bit-x64-hosted-msvc-toolset-on-the-command-line).

В Qt Creator Kit Settings (https://doc.qt.io/qtcreator/creator-targets.html#specifying-kit-settings) задаётся компилятор нужной разрядности.

Библиотеки Qt собранные в x86 не совместимы с x64, и наоборот.


Название: Re: qmake target bits
Отправлено: Acrobat от Сентябрь 11, 2019, 16:32
Спасибо. Это всё понятно. Qt 64 разрядный, console promt MSVS x64. Проблема в том что nmake по умолчанию хочет собрать x86 (о чем и говори ошибка), как его заставить собирать 64 битное приложение не понятно.

(https://i.ibb.co/mbrhTZs/image.jpg)


Название: Re: qmake target bits
Отправлено: ViTech от Сентябрь 11, 2019, 17:15
Странно. Попробуйте простое тестовое приложение собрать в x64, чтобы убедиться, что nmake в принципе x64 нормально собирает. Попробуйте удалить все временные файлы в plugins\sqldrivers\oci, чтобы повторить сборку в чистом окружении, может из старого что мешает. Убедитесь, что библиотека в C:\oracle\...\lib\msvc x64, а не x86.


Название: Re: qmake target bits
Отправлено: Acrobat от Сентябрь 11, 2019, 17:21
Действительно. Почистил всё и  собралось на ура. Скил наития слабоват. Спасибо большое.