Создание полной глобальной среды clang+llvm

Создание полной глобальной среды clang+llvm

Какой самый простой способ настроить полный 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.

Связанный контент