#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
Ответ №1:
Привязки результатов должны быть доступны под именем пакета, определенным разработчиком. Можно либо указать package
непосредственно внутри .def
файла, как в документации, либо сделать то же самое в cinterops
блоке build.gradle<.kts>
, как описано здесь .
В данном конкретном случае, поскольку в сути нет App.h, я бы предположил, что либо .def
файл просто неверен. Его содержимое противоречит содержимому cinterops
блока, а также содержит несколько независимых заголовков в одном месте, чего следует избегать.