Создание полной, глобальной среды 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.

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