0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

以下のキャンペーンにつられて書きました。

認識違いや間違い等が有るかもしれませんので、ご了承ください。
あと文章もつたないかもしれません。
コメントで指摘して頂けるとありがたいです。

Kotlin/NativeでC言語のライブラリを使用するにはdefファイルを記述する必要があると思います。

提供されているライブラリを使用する場合は、ライブラリファイルや.ヘッダーファイルを各種記述すればいいと思うのですが、C言語のソースからライブラリを作成して、それを使用する場合はビルド手順を別途用意しないといけないため手間かもしれません。

色々試して、sqliteのように1つのソースにまとめた物を公開されているような場合、sqlite3.cをdefファイルにincludeしてしまえば、sqliteのビルドの手順を作成する手間を省くことができました。

上記のように本来Kotlin/Nativeで使用する関数などを定義する箇所に#include "sqlite3.c"を記述することで、sqlite3.cがコンパイルされるためklibにsqlite自体を含めることができます。
また、全体を#includeするため、使用する関数のみのヘッダーファイルを#includeしなくても、ほぼ全ての関数がKotlin/Native側で使用できるようになります。
本来の使い方では無いとは思いますが、良いかどうか別として、こんな方法もあるということで紹介しました。

ちなみに同じプロジェクトでzopfliもKotlin/Nativeで使えるようにしています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?