当尝试在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
不确定从何处开始,非常感谢任何输入。
答案 0 :(得分:1)
而不是写
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
你应该做
#if !defined(__has_warning) || __has_warning("-Wmaybe-uninitialized")
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif