Я новичок в компиляторе LLVM и инфраструктуре. У меня есть следующая мысль. Clang - это интерфейс LLVM для C/C++, аналогично Rustc для языка программирования Rust. Оба могут испускать ИК-код LLVM, а испускаемый код может быть скомпилирован в исполняемое приложение.LLVM как базовый компилятор для разных языков
Вопрос в том, можно ли связать разные языки программирования? Пример показан ниже -
/* Code in C */
int add(int, int);
int main()
{
printf("%d", add(5 ,6));
}
функция, определенная в Руст, например
// Code in Rust
fn main()
{
println!("{}", add(5, 6));
}
fn add (x: i32, y: i32) -> i32
{
x + y
}
После того, как ИК генерируется из обоих исходных файлов, можно связать их и создать одно приложение?
Мне просто интересно узнать, работает ли это, пожалуйста, дайте мне знать.
Я думаю, что у вас должно быть место для ржавчины где-то ... но проблема другая, если вызов c из ржавчины или наоборот. –
Каждый исходный код должен указываться отдельно для каждого человека.Впоследствии команда llvm-link может объединять несколько файлов биткода. Если вызов из одного исходного кода соответствует второму, он может работать. –
Оба языка должны быть совместимы с Binary Interface. –