Можно ли связать код c с помощью битового кода llvm? - PullRequest
2 голосов
/ 18 января 2012

У меня есть файл битового кода llvm, содержащий некоторые полезные функции. Я хочу назвать это из кода c. Можно ли связать этот код c с помощью битового кода llvm для создания исполняемого файла? Или я должен вызвать функцию через JIT.

Ответы [ 2 ]

2 голосов
/ 18 января 2012

Битовый код LLVM должен быть выполнен исполняемым для вызова из C. У вас есть по крайней мере два варианта:

  1. JIT компилирует битовый код перед его вызовом.
  2. llc битовый код и сборка / связывание объектного файла с вашими объектными файлами C.

    1. , вероятно, проще сделать.
0 голосов
/ 20 января 2012

В основном ответ - да, при условии, что вы не используете какой-либо не упомянутый интерпретатор языка Си во время выполнения. Как правило, C должен быть скомпилирован для чего-то, инструменты llvm предоставляют вам два варианта выбора бит-кода и языка ассемблера для целевого процессора. C можно превратить в битовый код, и все компоненты будут в одном исполняемом двоичном файле. Оттуда вы можете взять все эти части и перенести их на язык ассемблера для конкретной цели.

...