qmake - x64 делает спецификацию для x64 решения Visual Studio? - PullRequest
4 голосов
/ 19 октября 2010

В настоящее время мы используем файлы qmake и .pro для создания проектов для Visual Studio 2008, но платформой решения по умолчанию является Win32.Каждый раз, когда проекты перестраиваются, мне приходится вручную менять платформу на x64, зайдя в диспетчер конфигурации и скопировав настройки из решения Win32.автоматически создавать решение VS2008, настроенное для сборки x64.Нужно ли мне создавать свой собственный makepec для QT?Нужно ли указывать специфичные для x64 флаги VS?У кого-нибудь есть пример, который он может опубликовать, который он успешно использовал для создания проектов x64-spec?

Ответы [ 3 ]

4 голосов
/ 19 октября 2010

Это известная проблема.В отслеживателе ошибок Qt есть пара соответствующих ошибок: QTBUG-6910 и QTBUG-4046 Эта вторая запись также содержит ссылку на патч, который вы можете использовать, если вы собираете Qt самостоятельно.Проголосуйте за исправление этих ошибок, чтобы улучшить видимость этой проблемы.

2 голосов
/ 20 октября 2010

Благодаря the_mandrill, это решение:

Сначала вам нужно скачать патч 3891 .Затем вам нужно применить патч - вы можете найти утилиту патча для Windows, но я только что отредактировал файлы, добавленные в патч вручную;файлы находятся в \ qmake \ generators \ win32

Затем вам нужно собрать QT с нуля, что делается с помощью навигации в командной строке (убедитесь, что это команда Visual Studio 2008 x64запросить из каталога Visual Studio) каталог, в который вы установили QT, предположительно C: /QT/4.7.0 и набрав configure , затем nmake .

Построение QT займет много времени.В то же время добавление этих файлов в ваши файлы qmake автоматически обнаружит вашу хост-ОС.Имейте в виду, что это решение НЕ производит конфигурации win32 и x64 для x64 - только конфигурацию x64.

contains(QMAKE_HOST.arch, x86):{
QMAKE_LFLAGS *= /MACHINE:X86
}

contains(QMAKE_HOST.arch, x86_64):{
QMAKE_LFLAGS *= /MACHINE:X64
}

Это создает работающее решение x64 Visual Studio, которое компилирует и связывает без ошибок.

1 голос
/ 09 августа 2013

Это было исправлено в 4.8.

Вам нужно запустить qmake из командной строки VS x64, чтобы он мог обнаружить компилятор amd64 в переменной PATH.

...