Не удается запустить код AOT

В настоящее время я занимаюсь учебником AOT, и часть компиляции работает, но когда я пытаюсь создать код (который находится в отдельном проекте), который включает скомпилированный код, он не может быть построен из-за следующей ошибки:

введите здесь описание изображения

Как мне решить эту проблему?

РЕДАКТИРОВАТЬ: следующий вопрос. Мне удалось скомпилировать 2 функции, и когда я пытаюсь использовать их в одном проекте, он продолжает выдавать следующую ошибку:

введите здесь описание изображения

Это всего лишь несколько ошибок. Итак, мой следующий вопрос. Могу ли я объединить все свои функции в один файл или есть другой способ игнорировать двойные определения?


person Rok    schedule 06.07.2016    source источник


Ответы (2)


Вы можете включить функцию NoRuntime в цель, чтобы удалить halide_ функции. Конечно, вам все еще нужны эти функции, и вы можете использовать compile_standalone_runtime() для создания их единственной копии.

person Khouri Giordano    schedule 06.07.2016
comment
будет ли это означать, что мне придется скопировать все функции, которые я хочу скомпилировать в AOT, и поместить их в один проект, а затем вызвать compile_standalone_runtime()? - person Rok; 11.07.2016
comment
Каждое использование compile_to_file приведет к созданию пары заголовок / объектный файл AOT. compile_standalone_runtime создает объектный файл. Свяжите их вместе с вашим кодом, который использует функции AOT. В Windows это может быть утомительно, потому что вам придется создать один (или несколько, если хотите) проектов для создания объектных файлов, которые нужны вашему окончательному проекту. - person Khouri Giordano; 12.07.2016

Я решил это, добавив файл .obj в качестве одного из входов компоновщика

person Rok    schedule 06.07.2016