Avatar
Swift で C 製のシステムライブラリを使う方法として .systemLibrary を使う方法があることを知りました。Package.swift の target の中に .systemLibrary(name: "Choge") を入れておいて,Source/Choge/ 下に module.modulemap ファイルを module Choge [system] { header "/usr/local/include/hoge.h" link "hoge" export * } のようにしておくと、他の target で dependenciesChoge を入れておくだけで import して使えるようになります(みなさんもうとっくに知ってた話かな?) ただ(標準の library search path に入っていない?)ライブラリをリンクをするには linkerSettings: [ .unsafeFlags(["-L/usr/local/lib"]), .linkedLibrary("hoge") ] のようにしなきゃいけなくて、この unsafeFlag がどうにかならんもんかと思っています…🤔 CLI で swift run するだけなら export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/lib をするだけで library search path に追加してくれるようなのですが、Xcode にはこの設定が反映されないようです🤔 (edited)