Paw*_*ski 3 c++ qt windows-10 uwp c++-winrt
我想使用通过Qt 5.9.2为UWP 64bit(MSVC 2017)创建的UWP应用程序中通过WinRT API提供的库(类似这些)。我在计算机上安装了Visual Studio Build Tool 2017 v15.5.7。Windows 10是我的操作系统。
现在,我已经建立了如下所示的工具包。
然后,在.pro
文件中,我添加了:
SOURCES += main.cpp
INCLUDEPATH += $$PWD/cppwinrt/10.0.16299.0/
DEPENDPATH += $$PWD/cppwinrt/10.0.16299.0/
Run Code Online (Sandbox Code Playgroud)
我cppwinrt
来自GitHub rep。
我只是添加了一些行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();
}
Run Code Online (Sandbox Code Playgroud)
运行qmake
和之后build
,出现此错误:
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ VC \ Tools \ MSVC \ 14.12.25827 \ include \ optional(15):致命错误C1189:#错误:可选的类模板仅在C +中可用+17。
Windows文档明确指出,自v15.3(再一次,我有15.5.7)以来,C ++编译器接受该/std:c++17
标志。我试图通过向.pro
文件添加以下行之一来传递它:
CONFIG += c++1z
# Or
QMAKE_CXXFLAG=/std:c++17
Run Code Online (Sandbox Code Playgroud)
他们都没有帮助.....
这是由编译器运行的详细构建命令:
cl -c -nologo -FS -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -EHsc /Fddebug\uwp-test.vc.pdb -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQ_BYTE_ORDER=Q_LITTLE_ENDIAN -DWINAPI_FAMILY=WINAPI_FAMILY_PC_APP -DWINAPI_PARTITION_PHONE_APP=1 -DX64 -D__X64__ -D__x64__ -DQT_DEPRECATED_WARNINGS -DQT_CORE_LIB -I..\uwp-test -I. -I..\ne-patient-app-libraries\cppwinrt\10.0.16299.0 -I..\..\..\..\Qt\5.9.2\winrt_x64_msvc2017\include -I..\..\..\..\Qt\5.9.2\winrt_x64_msvc2017\include\QtCore -Idebug -I..\..\..\..\Qt\5.9.2\winrt_x64_msvc2017\mkspecs\winrt-x64-msvc2017 -Fodebug\ @C:\Users\NEUROE~2\AppData\Local\Temp\main.obj.11672.15.jom
Run Code Online (Sandbox Code Playgroud)
我想念什么?有什么可以解决问题的?谢谢!