Как импортировать сгенерированные классы Kotlin из C в Kotlin / Native?

#c #kotlin #gradle #intellij-idea #kotlin-native

#c #kotlin #gradle #intellij-идея #kotlin-native

Вопрос:

Я пытаюсь взаимодействовать с Kotlin / Native C.

Я успешно создаю проект Kotlin / Native с заголовочным файлом C.

Но не знаю, как импортировать сгенерированные библиотеки. В каком пакете они находятся

Например, в App.h (см. gist) есть функция с именем void printNameFromC(char* name) . Как вызвать это в файле Kotlin? (как импортировать пакеты функций?)

Я попытался использовать имя пакета, указанное в main.cinterops.packageName, попробовал имя в cinterops.create(**), а также вручную набрал имена функций, используемые в заголовочном файле, и они не показаны в предложениях

Пожалуйста, помогите мне, как использовать

Мой код: https://gist.github.com/RageshAntony/d25232763682d2a15acbabaa1cca08bc

Скриншот структуры проекта prj struct

Ответ №1:

Привязки результатов должны быть доступны под именем пакета, определенным разработчиком. Можно либо указать package непосредственно внутри .def файла, как в документации, либо сделать то же самое в cinterops блоке build.gradle<.kts> , как описано здесь .
В данном конкретном случае, поскольку в сути нет App.h, я бы предположил, что либо .def файл просто неверен. Его содержимое противоречит содержимому cinterops блока, а также содержит несколько независимых заголовков в одном месте, чего следует избегать.