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