【Console Application】外部関数 24【学習記】
いわゆる include よー🤤
Q.
それで、 import できたの?
A.
できたけど埋め込みできないみたい
→ swift でコマンドラインツールの単体バイナリを造りたい場合、外部ライブラリモジュールではなくソースを用意しないとならなそう😞
→ .a なら埋め込める可能性が有るが swift の学習としては別言語ライブラリが混在して良くない
#Xcode #Swift #import
#framework
#学習記
Swift のライブラリ?
それじゃ今回は Swift の番よー🤪
【iOS】静的ライブラリ(.aファイル)を作ってみる
https://llcc.hatenablog.com/entry/2017/11/01/220000
Objective-C じゃん😞
google は入力語ガン無視して表示するようになって悪意しか感じない🙄
…
…
…
あれ? Swift でライブラリを作る方法が出てこない…🙄
framework を作る方法はそれなりに出てくるんだけど…
とりあえず .a が作れるのかやってみようかな🤔
そもそも swift の選択肢が無いのよね…😞
お? swift file 追加しようとしたら「ブリッジヘッダ作る?」って言われた🤔
そのまま作ったらヘッダ無いしどうするんだろって思ったけどなるほど swift でコーディングできるけど内部シンボルは C/C++ 互換にしておいて C/C++ のライブラリとして呼び出す、というヤリクチっぽい🤤
で、ブリッジヘッダってどう書くの…?🤪
SwiftとObjective-C連携 with Xcode
https://qiita.com/ysn/items/fa85612cb5adf9a4c05d
これは OC で書いたライブラリを swift で使う物っぽい😞
………
一応 OC で swift を呼ぶ方法も書かれてるけれどそもそもその なんたらswift.h というのが無いわけで…🙄
ビルドしたらできるのかな…?
いつもバイナリができてる Products の中にそれっぽいのは無いかな…😞
あ、また prefix にアンダー追加し忘れてる🙄
別の場所探したらそれっぽい命名規則のヘッダ発見🤤
これかな?🤔
ええとサイトによると Define Module を true にして…
ブリッジヘッダを作成…取り込んだのが .a だからそもそも「ブリッジヘッダ作る?」って聞かれない😞
どうすんのこれ🙄
Swiftプロジェクトにブリッジングヘッダを追加する方法
https://qiita.com/titoi2/items/abe7b58a9e644b29e8c3
😞😞😞
とりあえず OC の時に有った修正と同じ事は やっておこうね🤤
ヘッダがあったとこの Binary に入ってた .a をコピーしたんだけど file で確認すると中身が想定の .a じゃないので Product からちゃんと持ってきておこうね🤤
…
…
…
なんか変わらないや🙄
Product の .a と一緒に出てたやつをとりあえず入れてみたけど特に変わるでもなし…😞
そもそも Swift で .a は作れないのでは?
どの記事を見ても .a は OC である事が前提になってて「 Swift から呼ぶ」以外の記事が出てこない🙄
OC から Swift を呼ぶ物も有るけど Swift 側で .a になっている、という手合の物は皆無…🤔
結 論
Swift で .a は作れない
って事にしとこうかな🤤
素直に Framework で
😞😞😞
ターゲット追加はうまく行かない事が多いなって思う🙄
プロジェクトを丸ごと作り直そうかな😞
あっさり framework が出力される🙄
コード同じなのにね😞
hello,world 側に読み込んだは良いけどここからどうするんだろ…🙄
…
…
…
やり方が出てこないんだけど…🤔
とりあえず import にライブラリ名を書いてみようかな…🤤
文言が変わった🤔
スコープ内でそんな関数無いぞって言われてるっぽい🙄
なんかスコープ指定しないと省略できない?🤔
とりあえず public に🤔
等号の隣に空白文字要るって🙄
… swift って演算記号に空白文字必須なの?🙄
バイナリ単体で出力されてなくて嫌な予感したけどやっぱりだめだった😞
なんで埋め込んでくれないの…😞
【Xcode】自作埋め込みCocoa Touch Frameworkを実機インストール&Archiveする
https://qiita.com/0ba/items/4c79d3525749ac4aa1af
だから Embedded Binries はもう無いんだって…🙄
埋め込み設定なんだけどなぁ…😞
多分動くしもういいや(ぁ
結論
swift で コマンドラインツールは止めた方が良い
次回
main の argv を取り出すのやろうかな🤤
この記事が気に入ったらサポートをしてみませんか?