ぐてすとスマートフォン用の表示で見るたかろぐ自分のログを刻みます。この広告は、90日以上更新していないブログに表示しています。Nativeこんばんは、昨日作ったリバーシライブラリをiOSアプリに埋め込みたくて、色々調べていました。整理しきれていないので、間違っていたら指摘してください!やりたい事まず、やりたい事ですが、以下の図の通りです。Native)から、Nimで作ったリバーシライブラリを呼び出したいと思っています。Nimを採用した理由は、単純に高速に動きそうだと思ったからです。その為には自分の知識が足りていなかったので、今日は基本的な調査をしていました。今回はiOSを中心に調べました。iOS上で外部ライブラリを使うためにこれについては、結論だけ言いますが、プロジェクトに静的ライブラリ(.a)をインポートすれば良いようです。オブジェクトファイルとは、機械語命令とデータが記述されたファイルらしいです。機械語はハードウェアを制御する命令のことで、この命令セットは実際に動かすデバイスのアーキテクチャによって違ってくるようです。オブジェクトファイルはアーキテクチャに依存したファイルってことですね。{オブジェクトファイル名}コマンドで分かります。この例だと、x86_64が命令セットのアーキテクチャに当たる感じですかね。iOSにもこのアーキテクチャの種類がいくつかあるみたいなので、一応まとめておきます。(こちらの記事の引用です。Simulatorなるなる。それらを全部静的ライブラリとしてまとめておきなさいってことになるのかなと解釈しました。この違うアーキテクチャに対応した形に変換することをクロスコンパイルと呼びます。自分はarmv7、armv7s、arm64、i386、x86_64のオブジェクトファイルを用意することになるかなと思っています。Thinning余談です。脱線するかもですが許してください。先ほど、あらかじめそれぞれのアーキテクチャに対応したオブジェクトファイルを作り、静的ライブラリにまとめると言いました。これを図にすると、以下のような感じになります。このライブラリをそのまま配布すると少し無駄が出てきますね。arm64ユーザにとってarmv7、armv7s、i386、x86_64用のオブジェクトファイル群は全く要らないですよね。この無駄を解消する動きがあるみたいですね。詳しくはこちらを参照ください。キーワードは、Slicingとか、Bitcode辺りです。(疲れたのでまとめるのは今度で...。)特にBitcodeの話は結構面白かったですよ。画期的です!Nim言語からクロスコンパイルするには?Nim言語のクロスコンパイルについては、以下の記事が参考になるかな〜と思います!qiita.com最後に今日は、iOSデバイス上でNimライブラリを呼び出すためにはどうしたら良いか調査していました。まとめきれてない感ありますが、明日は手を動かしつつやっていきたいと思います。Native...2018-03-26Nim言語でリバーシAINim言語触ってました〜。»プロフィールid:g-knk-9410自分のログを刻みます。していたずっと研究と開発してた休日react-native-modal雑用したり、課題したり月別アーカイブはてなブログをはじめよう!g-knk-9410さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。