go build を使用して iPhone シミュレーター用の静的ライブラリを構築する

PHPz
リリース: 2024-02-09 22:33:08
転載
959 人が閲覧しました

使用 go build 为 Iphone 模拟器构建静态库

php エディタ Zimo の紹介: iOS アプリケーションを開発するとき、多くの場合、静的ライブラリを使用して関数を拡張したり、いくつかの共通ツール関数を提供したりする必要があります。 Go 言語を使用して開発する開発者は、go build コマンドを使用して iPhone シミュレーター用の静的ライブラリを構築する方法を疑問に思うかもしれません。この記事では、 go build コマンドを使用して静的ライブラリを構築する方法を詳しく紹介し、開発者が静的ライブラリの構築プロセスを正常に完了するのに役立ついくつかの実用的なヒントと注意事項を提供します。初心者でも経験豊富な開発者でも、この記事を読んで、静的ライブラリの構築に関する実践的な知識とヒントを得ることができます。

質問の内容

次の方法を使用して、ios プロジェクトに c アーカイブをビルドします。

goos=ios goarch=arm64 cgo_enabled=1 sdk=iphonesimulator cgo_cflags="-fembed-bitcode" cc=pwd/clangwrap.sh go build -buildmode=c-archive -o libuplink .a

clangwrap.sh は次のようになります

リーリー

Xcode でリンクし、シミュレーターを使用して実行しようとすると、デバイス自体でのみ実行できます:

リーリー

go build のシミュレーターを Swift プロジェクトで使用される静的ライブラリとして位置付けるにはどうすればよいですか?

ソリューション

要件

    iPhone シミュレーター用の静的ライブラリを作成する
  • インテル エミュレータの代わりに Apple シリコンを使用します
  • 特定の最小バージョンを実現できる機能

tl;dr

実行先にシミュレータを選択すると、xcodeと同様のことができます。

したがって、基本的には、

-arch arm64 の代わりに -target arm64-apple-ios16.2-simulator のようなものを使用します。また、-mios-version-min=10.0 も省略します。実際の最小バージョンは -target (例: 16.2) でエンコードされているため、それが優先されます (エミュレータの正しいオプションは とにかく -miphonesimulator-バージョン-min) .

次に、

cgo_ldflags として、-target オプション、-syslibroot および SDK へのパスも指定します。

ビルド スクリプトを少し調整すると、次のようになります:

これは、エミュレータをターゲットとして指定し、最小バージョンは 15 です。

build.sh リーリー

target.sh リーリー

clangwrap.sh

その後、

clangwrap.sh は次のように簡略化されます: リーリー ######詳細######

別の SDK

iOS デバイスと iPhone シミュレーターには異なる SDK を指定する必要があります。これらは、xcode でサポートされている他のプラットフォームの隣にあります。

/applications/xcode.app/contents/developer/platforms の下。たとえば、xcode 14.2 などでは、iphoneos16.2.sdk

を含む

iphoneos プラットフォームと、iphonesimulator16.2.sdk iphonesimulator を含む があります。 ### プラットホーム。 Apple 開発者フォーラムの Apple 従業員が次の興味深い投稿を投稿しました: https://developer.apple.com/forums/thread/673387#662260022

load

コマンド用に生成された静的ライブラリを検査するには、次のコマンドを呼び出します。 リーリー Apple Silicon シミュレーター用に生成された静的ライブラリには、次のように表示されるはずです:

リーリー

注: platform 7 はシミュレーターを表し、

minos

は最小のデプロイメント ターゲットを表し、

sdk

は使用される実際の SDK バージョンを表します。 インクルード ファイル loader.h のセクションを参照してください: リーリー 次のように、システム上で自分で表示できます:

リーリー

iPhone デバイス専用に構築

iPhone SDK の静的ライブラリを構築するには、以下を変更する必要があります:

リーリー

上記の build.sh スクリプト内。

otool -l 出力は次のように表示されます: リーリー

注: platform 2

は、エミュレータではなく、platform_ios を表します。

これはもちろんデバイス上で完全に動作します。

以上がgo build を使用して iPhone シミュレーター用の静的ライブラリを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!