Сборка проекта Qt с MinGW для использования WinRT API

Я хотел бы использовать библиотеки, доступные через WinRT API (как эти) из моего приложения, созданного с использованием Qt 5.9.2 MinGW 32bit. Я получил ОС Windows 10.

Теперь я настроил комплект, как показано ниже.

Установка MinGW Kit

Затем в .pro файл, который я добавил:

CONFIG += c++1z

SOURCES += main.cpp

 ### Windows 10 SDK

 win32:CONFIG(release, debug|release): LIBS += -L$$PWD/'../../../../Program Files (x86)/Windows Kits/10/Lib/10.0.16299.0/um/x86/' -lWindowsApp
 else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/'../../../../Program Files (x86)/Windows Kits/10/Lib/10.0.16299.0/um/x86/' -lWindowsApp

 INCLUDEPATH += $$PWD/'../../../../Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/shared'
 DEPENDPATH += $$PWD/'../../../../Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/shared'
 INCLUDEPATH += $$PWD/'../../../../Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/um'
 DEPENDPATH += $$PWD/'../../../../Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/um'
 INCLUDEPATH += $$PWD/'../../../../Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/ucrt'
 DEPENDPATH += $$PWD/'../../../../Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/ucrt'
 INCLUDEPATH += $$PWD/'../../../../Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.12.25827/include'
 DEPENDPATH += $$PWD/'../../../../Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.12.25827/include'
 INCLUDEPATH += $$PWD/../ne-patient-app-libraries/cppwinrt/10.0.16299.0/
 DEPENDPATH += $$PWD/../ne-patient-app-libraries/cppwinrt/10.0.16299.0/

я получил cppwinrt из GitHub rep и Windows 10 SDK из Центра разработки Windows.

Я просто добавил несколько строк в main.cpp проверить правильность компиляции:

#include <QCoreApplication>
#include <winrt/Windows.Devices.WiFi.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    WiFiAdapter wiFiAdapter;

    return a.exec();
}

После запуска qmake а также buildЯ получаю эти ошибки:

C: \ Program Files (x86) \ Windows Kits \ 10 \ Include \ 10.0.16299.0 \ ucrt \ corecrt_stdio_config.h: 31: ошибка: #error Неподдерживаемая архитектура #error Неподдерживаемая архитектура ^

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ VC \ Tools \ MSVC \ 14.12.25827 \ include \ new: 23: ошибка: #error Неподдерживаемая архитектура #error Неподдерживаемая архитектура ^

C: \ Program Files (x86) \ Windows Kits \ 10 \ Include \ 10.0.16299.0 \ um \ winnt.h: 1008: ошибка: #error Должна определять целевую архитектуру. #error Должен определять целевую архитектуру. ^

... и другие из файлов: corecrt_stdio_config.h, winnt.h, oaidl.h, DirectXMath.h, vcruntime.h а также yvals.h,

Это подробная команда сборки, запускаемая компилятором:

g++ -c -fno-keep-inline-dllexport -g -std=gnu++1z -Wextra -Wall -W -fexceptions -mthreads -DUNICODE -D_UNICODE -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_CORE_LIB -I../uwp-test -I. -I"../../../../Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/shared" -I"../../../../Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/um" -I"../../../../Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/ucrt" -I"../../../../Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.12.25827/include" -I../ne-patient-app-libraries/cppwinrt/10.0.16299.0 -I../../../../Qt/5.9.2/mingw53_32/include -I../../../../Qt/5.9.2/mingw53_32/include/QtCore -Idebug -I../../../../Qt/5.9.2/mingw53_32/mkspecs/win32-g++  -o debug/main.o ../uwp-test/main.cpp

Что мне не хватает? Что может решить проблему? Спасибо!

1 ответ

Чтобы решить эту проблему с помощью MSVC, решением было бы#include <windows.h>. Это также должно работать сmingw-64, хотя их поддержка может быть неполной.

Другие вопросы по тегам