Проблема
Я пытаюсь собрать lode из LibreOffice и получить ошибку unique_ptr
, не поддерживаемую clang ++ в xcode.Я обнаружил, что установка флага -std=c++11
при непосредственном выполнении clang ++ может устранить ошибку unique_ptr
.Но я не знаю, как поставить -std=c++11
в процессе строительства.Есть ли другой способ, как я могу добавить этот флаг (например, с помощью переменных среды) или решить эту проблему каким-либо другим способом?
Фон
Я запускаю это на Mac OS Mojave 10.14, используяXCode 9.4.1, как указано в руководстве по LibreOffice:
ПРИМЕЧАНИЕ. Если вы попытаетесь построить LibreOffice на MacOS Mojave 10.14, используйте Xcode 9.4.1, в противном случае LibreOffice станет действительно нестабильным из-запроблема с Xcode 10.
Версия clang++
Apple LLVM version 9.1.0 (clang-902.0.39.2)
.
Ошибка
На основе сообщения об ошибке
...
-- Check for working CXX compiler: /Applications/Xcode-9.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-- Check for working CXX compiler: /Applications/Xcode-9.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -- works
...
-- Checking if compiler supports C++ unique_ptr
-- Checking if compiler supports C++ unique_ptr - no
CMake Error at CMakeLists.txt:79 (message):
The C++ compiler does not support C++11 (e.g. std::unique_ptr).
-- Configuring incomplete, errors occurred!
See also "/Users/xxxx/Documents/workspace/lode/packages/cmake-3.10.0-rc3/CMakeFiles/CMakeOutput.log".
See also "/Users/xxxx/Documents/workspace/lode/packages/cmake-3.10.0-rc3/CMakeFiles/CMakeError.log".
...
Попытка
Я попытался запустить исполняемый файл /Applications/Xcode-9.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
с примером кода, который использует функцию unique_ptr
, и, как и ожидалось, он не работал.
Но затем я добавляю флаг-std=c++11
, это работает.Поэтому, если я смогу каким-то образом установить clang++
для использования аромата c ++ 11. Проблема может быть исправлена.
Я попытался добавить переменные окружения CXXFLAGS
, чтобы они были -std=c++11
и CMAKE_CXX_FLAGS
-std=c++11
но похоже, что это игнорируется.