Когда нужны источники libC++ при сборке Clang из исходников?

Я много лет собирал Clang для Linux и OS X. На странице загрузки LLVM я всегда использовал следующие источники:

  • LLVM (источник LLVM)
  • Внешний интерфейс компилятора (источник Clang)
  • Компилятор RT (источник времени выполнения)
  • Инструменты компилятора (Инструменты Дополнительные источники)

Рецепт, который я использую для загрузки, сборки и установки Clang 3.5, можно найти на Clang 3.5, скрипт загрузки, сборки и установки.

Он отлично работает на OS X 10.7 и 10.8, и мне никогда не требовался механизм libC++ на OS X 10.7.x или 10.8.x (это примерно через 2010 или около того).

Вопрос: когда нужны исходные коды libC++ и libC++ ABI?


Я пытаюсь помочь устранить проблему невозможности скомпилировать простую программу C++ "Hello World" на OS X 10.9. Clang 3.5 установлен в /usr/local (так же, как другие), но он не может найти заголовки (как <iostream>) и он встречает неопределенные символы во время ссылки (например, "std::ostream::operator<<(std::ostream& (*)(std::ostream&))").

Мне интересно, есть ли в 10.7 и 10.8 заголовки и библиотеки, в которых ожидались предыдущие версии Clang, но для 10.9 они нужны и собраны.

Вопрос: это симптом отсутствующего libC++ и libC++ ABI?

1 ответ

При сборке / установке clang вы должны проверить исходные тексты libC++, чтобы вы также установили C++ STL.

Если у вас нет среды выполнения libC++ в вашей системе, вы должны проверить и установить libC++ abi и libC++, которые могут быть выполнены автономно и независимо от их извлечения в вашей установке llvm/clang.

Для справки я предлагаю вам взглянуть на порты libcxxabi, libcxx, libunwind и llvm-XY в MacPorts, которые показывают, как я настроил эти проекты для сборки на Leopard через Yosemite.

Другие вопросы по тегам