未知的警告组'-Wyybe-unintialized'Mac OS Sierra

时间:2016-11-23 09:57:24

标签: c++ clang pragma macos-sierra libc++

当尝试在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"

以下是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

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

1 个答案:

答案 0 :(得分:1)

而不是写

#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"

你应该做

#if !defined(__has_warning) || __has_warning("-Wmaybe-uninitialized")
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif