C++17 标准库包括不使用 Visual Studio 2017 中的 Android 项目

Posted

技术标签:

【中文标题】C++17 标准库包括不使用 Visual Studio 2017 中的 Android 项目【英文标题】:C++17 standard library includes not working with Android project in Visual Studio 2017 【发布时间】:2018-08-24 15:31:50 【问题描述】:

我想要实现的目标非常简单:我只想在 Visual Studio android 项目中使用 C++17 功能。

我刚刚采用了一个 Visual Studio 示例(新项目 --> Visual C++ --> 跨平台 --> 选择其中任何一个)并在其中一个中添加了 #include <optional>源文件。此外,我设置了以下配置属性:

配置属性-->常规下:

Target API Level 到最近的一个 Use of STLLLVM libc++ shared library,但我已经尝试了几个选项

配置属性 --> C++ --> 语言下:

C++ Language StandardC++17 (-std=c++1z)

结果总是一样的:构建过程中出现错误消息:

未找到“可选”文件

其他 C++17 包含也不起作用(例如“变体”)。

这里发生了什么?如何配置 Visual Studio(示例)项目以便使用 C++17 语言功能?

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,并通过简单地使用 Visual Studio 2019 解决了几个库。除了 C++ 语言标准 (-std=c++1z) 之外,所有预设都可以在那里接受。 现在可以包含以下库:

#include <variant>
#include <optional>
#include <string_view>
#include <any>

剩下的还是不能收录:

#include <memory_resource> // error
#include <charconv> // error
#include <execution> // error
#include <filesystem> // error

【讨论】:

以上是关于C++17 标准库包括不使用 Visual Studio 2017 中的 Android 项目的主要内容,如果未能解决你的问题,请参考以下文章

Windows Visual Studio 2015、C++11 标准和 Armadillo 库

c_cpp 使用文件系统库的一个技巧就好像有一个标准的C ++ 17。

有没有办法在 Visual Studio 2019 中发布 .NET 标准库而不生成 .nupkg?

如何在 Visual Studio 中启用 C++17 编译?

Visual Studio 无法识别标准库

linux 下C标准库是动态库还是静态库,还是两种库都提供了?