Как установить исполняемый файл clang ++ в xcode для c ++ 11 без использования флагов? - PullRequest
0 голосов
/ 04 июля 2019

Проблема

Я пытаюсь собрать 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 но похоже, что это игнорируется.

...