Beim Versuch, meine Software in Mac OS Sierra zu kompilieren, stoße ich auf ein Problem bezüglich unbekannter Pragmas (siehe Ausschnitt unten). Laut einem Kollegen kann die Software Mac OS X Yosemite mit der gleichen Sprachversion (4.2.1) kompilieren. Die verwendeten Kompilierungsmerker sind: -std=c++11 -stdlib=libc++
. Die Verwendung von stdlibc++
ist keine Option, da std::shared_ptr
nicht enthalten ist.Unbekannte Warngruppe "-Waybe-unintialized" Mac OS Sierra
error: unknown warning group '-Wmaybe-uninitialized', ignored
[-Werror,-Wunknown-pragmas]
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
hier ein Druck
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
Ungewiss aus g++ --version
Auf macOS der Standard-Compiler Clang, die * meist mit GCC * kompatibel ist. Der Befehl 'g ++' ist nur ein Alias für 'clang ++'. Wenn Sie ein GCC-spezifisches Verhalten benötigen (wie das von Ihnen gezeigte Pragma), schlage ich eine bedingte Kompilierung für diese Teile vor. –
Vielen Dank für Ihre Antwort @Someprogrammerdude. Okay, die Software wird mit 'cmake' kompiliert, wobei sowohl ich als auch mein Kollege die gleiche' cmake' Konfiguration verwenden, während seine Arbeit und meine nicht funktioniert. Gibt es einen signifikanten Unterschied zwischen Yosemite und Sierra in Bezug auf Sprachversionen und Bibliotheken, die "-Waybe-nicht initialisiert" stören könnten und es beim Kompilieren scheitern lassen? – Philip