gpt4 book ai didi

c++ - 使用带有 C++17 的 VS C++ 编译器 15.0 构建 Qt 项目以使用 WinRT API

转载 作者:太空狗 更新时间:2023-10-29 20:34:22 29 4
gpt4 key购买 nike

我想在我的 UWP 应用程序中使用通过 WinRT API(如 these )可用的库,该应用程序是使用 Qt 5.9.2 为 UWP 64 位 (MSVC 2017) 创建的。我的机器上安装了 Visual Studio Build Tool 2017 v15.5.7。 Windows 10 是我的操作系统。

现在,我已经设置了一个套件,如下所示。

UWP Kit setup

然后,在 .pro 文件中,我添加了:

SOURCES += main.cpp

INCLUDEPATH += $$PWD/cppwinrt/10.0.16299.0/
DEPENDPATH += $$PWD/cppwinrt/10.0.16299.0/

我从 GitHub rep 得到了 cppwinrt

我刚刚在 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();
}

在运行 qmakebuild 之后,我得到这个错误:

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.12.25827\include\optional(15): fatal error C1189: #error: class template optional is only available with C++17.

Windows documentation 清楚地指出,自 v15.3(再一次,我有 15.5.7)以来,C++ 编译器接受 /std:c++17 标志。我试图通过将其中一行添加到 .pro 文件来传递它:

CONFIG += c++1z
# Or
QMAKE_CXXFLAG=/std:c++17

他们都没有帮助.....

这是编译器运行的详细构建命令:

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

我错过了什么?什么可以解决问题?谢谢!

最佳答案

你想要 QMAKE_CXXFLAGS *=/std:c++17 - 即 _CXXFLAGS 而不是 _CXXFLAG

*= 表示如果不存在则添加它。

关于c++ - 使用带有 C++17 的 VS C++ 编译器 15.0 构建 Qt 项目以使用 WinRT API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48953986/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com