C++ 使用MinGW构建Qt项目以使用winrtapi
我想使用通过WinRT API(like)从使用Qt5.9.2 MinGW 32位创建的应用程序中获得的库。我有Windows10操作系统 现在,我已经设置了一个工具包,如下所示 然后,在C++ 使用MinGW构建Qt项目以使用winrtapi,c++,qt,mingw,c++-winrt,C++,Qt,Mingw,C++ Winrt,我想使用通过WinRT API(like)从使用Qt5.9.2 MinGW 32位创建的应用程序中获得的库。我有Windows10操作系统 现在,我已经设置了一个工具包,如下所示 然后,在.pro文件中,我添加了: CONFIG += c++1z SOURCES += main.cpp ### Windows 10 SDK win32:CONFIG(release, debug|release): LIBS += -L$$PWD/'../../../../Program Files
.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
,从中获得了Windows10SDK
我刚刚在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();
}
我错过了什么?什么能解决这个问题?谢谢大家! 我甚至不确定这是否可能。你可能必须使用msvc。据我所知,官方只支持msvc,而Clang作为辅助编译器来确保标准的一致性。如果您不能使用MSVC,您最好的选择是切换到Clang。如果您需要gnu功能,您可能需要使用
-std=c++17
或-std=gnu++17
。C++/WinRT需要C++17。VisualStudio还使用了/await
选项,该选项为协同程序启用了一些实验性和技术性的规范编译器功能,我不确定是否也需要这样做。看见
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