Сборка проекта Qt с MinGW для использования WinRT API
Я хотел бы использовать библиотеки, доступные через WinRT API (как эти) из моего приложения, созданного с использованием Qt 5.9.2 MinGW 32bit. Я получил ОС Windows 10.
Теперь я настроил комплект, как показано ниже.
Затем в .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
, хотя их поддержка может быть неполной.