Существуют ли API-интерфейсы C++ для lld?

В настоящее время я реализую компилятор для моего языка программирования. Итак, мой компилятор компилирует исходные файлы в .o объектные файлы, и, поскольку я хочу, чтобы мой язык программирования имел доступ к функциям C, таким как printf, мне нужно связать файл .o с libc.

Чтобы было ясно, использование g++ или ld в командной строке в качестве компоновщика работает отлично, но я хочу вызвать компоновщик LLVM (lld) с помощью C++. Однако, просмотрев документацию lld, я ничего не нашел о его C++ API.

Для тех, кто имеет опыт создания компилятора с использованием LLVM, есть ли C++ API для lld? Если да, то как я могу использовать API или где его документация?

Я не хочу использовать такие вещи, как system(), для вызова lld


person tjysdsg    schedule 27.02.2020    source источник
comment
Обратные кавычки предназначены для форматирования кода, а не для выделения. Такие имена, как «C++», не должны быть отформатированы как код.   -  person Konrad Rudolph    schedule 27.02.2020
comment
Я не хочу использовать такие вещи, как system(), для вызова lld Почему бы и нет? И компилятор компилирует исходные файлы в объект .o Правда? Вы создаете двоичный код? Для какой модели/семейства ЦП? И напоследок: ld (lld ?) — это программа, инструмент, кто сказал, что должен быть C++ API?   -  person Rene    schedule 27.02.2020
comment
stackoverflow.com /вопросы/10675661/   -  person Bord81    schedule 27.02.2020
comment
Я не уверен, где документация, но вы используете что-то похожее на elf::link(args, exitEarly, stdoutOS, stderrOS) в зависимости от типа компоновщика. Использование можно найти в основной функции lld.   -  person lxr196    schedule 10.01.2021