带有提升支持问题的 emscripten C++11

emscripten C++11 with boost support issue

我在构建使用 Emscripten 中的 boost 的 C++ 项目时遇到问题,如屏幕截图所示,它说“_Atomic”是 C11 扩展,但是即使我添加 -std=c++11 甚至 - std=c11 我仍然收到错误,_Atomic 使用是从 boost 定义的。

知道如何解决这个问题吗?阅读它确实表明 Emscripten 已经支持 C++11。

我的设置。 编译器:emscripten/em++ Clang 12.0.8

为什么

您屏幕截图中的消息显示:

  • 您正在使用 clang 进行编译
  • 错误:“_Atomic”是 C11 扩展 [-Werror,-Wc11-extensions]

所以 clang 会在 c11 扩展上发出警告,因为它设置了诊断标志,并且还配置为在警告时失败,这会导致编译失败。

如何修复

您可以使用 -Wno-c11-extensions 编译器标志专门停用此警告,请在此处查看关于如何操作的很好的解释:https://nelkinda.com/blog/suppress-warnings-in-gcc-and-clang/