未知警告组“-Wmaybe-unintialized”Mac OS Sierra

Phi*_*lip 2 c++ pragma clang libc++ macos-sierra

尝试在 Mac OS Sierra 中编译我的软件时,我遇到了关于未知编译指示的问题(请参阅下面的代码段)。据一位同事称,该软件可以在 Mac OS X Yosemite 中编译,使用相同的 clang 版本 (4.2.1)。使用的编译标志是:-std=c++11 -stdlib=libc++. 使用stdlibc++不是一个选项,因为它不包括std::shared_ptr.

error: unknown warning group '-Wmaybe-uninitialized', ignored
  [-Werror,-Wunknown-pragmas]
                    #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
Run Code Online (Sandbox Code Playgroud)

这是打印出来的 g++ --version

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin16.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Run Code Online (Sandbox Code Playgroud)

不确定从哪里开始,非常感谢任何输入。

Mar*_*rdy 7

而不是写作

#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
Run Code Online (Sandbox Code Playgroud)

你应该做

#if !defined(__has_warning) || __has_warning("-Wmaybe-uninitialized")
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif
Run Code Online (Sandbox Code Playgroud)

  • 这样做会在预处理器中出现错误“错误:在标记“(”之前缺少二元运算符” (3认同)