В настоящее время я реализую компилятор для моего языка программирования. Итак, мой компилятор компилирует исходные файлы в .o
объектные файлы, и, поскольку я хочу, чтобы мой язык программирования имел доступ к функциям C, таким как printf
, мне нужно связать файл .o
с libc
.
Чтобы было ясно, использование g++
или ld
в командной строке в качестве компоновщика работает отлично, но я хочу вызвать компоновщик LLVM (lld
) с помощью C++. Однако, просмотрев документацию lld
, я ничего не нашел о его C++ API.
Для тех, кто имеет опыт создания компилятора с использованием LLVM, есть ли C++ API для lld
? Если да, то как я могу использовать API или где его документация?
Я не хочу использовать такие вещи, как system()
, для вызова lld
elf::link(args, exitEarly, stdoutOS, stderrOS)
в зависимости от типа компоновщика. Использование можно найти в основной функции lld. - person lxr196   schedule 10.01.2021