
Какой самый простой способ настроить полный Clang, libc++ и LLVM как глобальный набор инструментов по умолчанию? Все мои попытки собрать его в большинстве конфигураций, которые я мог придумать, привели к тому, что Clang заработал, но он не использовал заголовочные файлы libc++, а использовал заголовочные файлы libstd++ GCC по умолчанию, что приводило к многочисленным ошибкам в несовместимых фрагментах библиотечного кода.
Мне бы хотелось, чтобы все работало «из коробки», без необходимости творить чудеса .bashrc
или передавать все это -stdlib=libc++
компилятору -lc++
и компоновщику.
решение1
Судя по тому, как LLVM и Clang интегрированы в базу FreeBSD, я думаю, вам придется взломать внутреннюю часть Clang, чтобы задать пути к библиотекам и заголовкам ( lib/Frontend/InitHeaderSearch.cpp
) для вашей системы.
Использование libc++ по умолчанию определенно требует изменения кода (grep lib/Frontend/CompilerInvocation.cpp
для "UseLibcxx"). Вам, вероятно, также понадобится взломать системный компоновщик, чтобы изменить -lstdc++
его на -lc++
.
Лично я бы рекомендовал вам просто установить CC, CXX, CFLAGS, CXXFLAGS и другие переменные, чтобы добиться того же результата без особых хлопот. У меня это работает безупречно на FreeBSD.