答えて
これは、あなたがする必要がどのような-linksharedフラグに
を使用すると、最初にこのコマンドを実行することであることが可能になりました:
go install -buildmode=shared -linkshared std
(コードの上にすべての一般的なパッケージが共有可能になります!)そして
go install -buildmode=shared -linkshared userownpackage
最後にコードをコンパイルするときは、実行する必要があります。
go build -linkshared yourprogram
静的にすべてをリンクするのではなく、動的にそれらをリンクするだけで、コンパイルされたファイルはずっと小さくなります。静的リンクを使った私の "hello.go"ファイルは2.3MBで、動的リンクを使った同じコードは12KBです!
明らかに、これは可能ですが、非常に正確な状況の下でのみ可能です。もっと正確に言えば、あなたがAndroidプラットフォームのために書いているなら。
GitHubの "goandroid"プロジェクトには、Android NDKで特定の用途に使用するための共有ライブラリをGoが作成できるようにする一連のパッチが用意されています。共有ライブラリとして構築することができる、
「このモードでゴーパッケージ、またはパッケージのセット1またはをインポート囲碁プログラムを:共有ライブラリとしてビルゴーパッケージの説明https://github.com/eliasnaur/goandroid
現時点(2013年7月)は、Goツールの拡張機能であり、Googleが提供するGoツールには組み込まれていません。 – Nate
@Nateあなたはエクステンションにリンクできますか?アンドロイド上でのみ(スタンドアローン)拡張機能を使用できますか、またはデスクトップ用にも使用できますか? –
@mihaistancu私はそれがあまりにもクロスコンパイルすることは難しいとは思わないアンドロイドのために行く、[ここ](https://jasonplayne.com/programming-2/how-to-cross-compile-golang-for-androidを参照してください)。 golang 1.5がiOSをサポートしていることを考慮すると、すぐに正式なサポートを受けることができました。 – Nate
Go Execution Modes参照してください。共有ライブラリは、Goプログラムがリンクされてから実行されるまでの間に変更されることがありますが、プログラムの開始時に利用可能な共有ライブラリは、 used ...
Go 1.5リリースでは、これはlinux-amd64ターゲットでのみ実装されています。 gccgoを使用すると、サポートされているすべてのターゲットに実装されます。
私はこの質問に戻ってアップデートを書きました。 +1 –
可能です! Goを使って.soファイルを作成し、Pythonに簡単にインポートしました! http://www.darkcoding.net/software/building-shared-libraries-in-go-part-1/
- 1. 共有ライブラリApp.Config
- 2. Websphere共有ライブラリ
- 3. オプションの共有ライブラリ
- 4. 共有ライブラリのファイルサイズ
- 5. 共有ライブラリのMakefile?
- 6. 共有ライブラリ、ライブラリ依存性
- 7. 共有ライブラリのpstack(c/C++)。破損した共有ライブラリ
- 8. ソーシャルメディアで共有するアンドロイドの共通ライブラリですか?
- 9. gdbserverで共有ライブラリをデバッグ
- 10. 共有ライブラリ用語
- 11. Mavenと共有ライブラリ
- 12. Java EE共有ライブラリ?
- 13. Cmake:リンク共有ライブラリ
- 14. NLog、Elmah +共有ライブラリ
- 15. (MVC)共有ライブラリのコントローラ?
- 16. GCC共有ライブラリの問題
- 17. 静的クラスメンバーの共有ライブラリ
- 18. Symfony共有ライブラリのアップグレード
- 19. 共有ライブラリ名の衝突
- 20. 共有ライブラリの相対パス
- 21. iPhoneとBlackBerryの共有ライブラリ
- 22. 共有コードとライブラリのユーザーストーリー
- 23. Cの共有ライブラリからのアクセスポインタ
- 24. ライブラリ間でFILEポインタを共有する
- 25. Androidでシステム共有ライブラリにアクセスする
- 26. ブースト - 「静的」vs「共有」ライブラリ
- 27. Websphere共有ライブラリ「優先度」?
- 28. ロードは、他の共有ライブラリに依存LIBSを共有
- 29. VS2010でプロジェクト間でDLLライブラリを共有
- 30. 共有ライブラリの例外をブーストする
正解です。 – 0x90
これは私が探していたものです。しかし、私のmacでは '-buildmode = sharedはdarwin/amd64でサポートされていません。 – lvle