Go の条件付き実装で Apex のネイティブ共有ライブラリが更新されない
Go 実装を使用して apex_default モジュールのnative_shared_libs にライブラリを動的に追加すると、問題があることが判明しました。 Go ファイル内の条件が正常に実行されたにもかかわらず、コンパイルされた .so ファイルが out ディレクトリに実体化されません。
潜在的な原因は、Go でエクスポートされていない構造体フィールドへのリフレクション アクセスが欠如していることです。 Go 実装の最初の構造体は小文字の「native_shared_libs」フィールドを使用していますが、このフィールドはエクスポートされず、リフレクションを使用してアクセスすることもできません。
これを解決するには、フィールド名を大文字で始まるように変更します。
<code class="go">type props struct { Multilib struct { First struct { Native_shared_libs []string } } }</code>
フィールドをエクスポートすることで、ビルド プロセスはリフレクションを使用して、apex_defaults モジュール内のこのフィールドにアクセスし、変更できるようになります。この変更により、ビルド プロセス中に目的のライブラリの .so ファイルが確実に生成されます。
以上が提供されたテキストに基づいて、質問形式で考えられるタイトルをいくつか示します。 短く直接的: * Go の条件付き実装が ApexDynamicall のネイティブ共有ライブラリを更新しないのはなぜですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。