これは可能かどうかを尋ねる宿題です。私はそれに対する答えが「はい」だと信じていますが、「なぜ?」という質問に対する答えは分かりません。私には、答えは単純に「なぜではないのですか」のように思えます...誰かがこれがなぜ真実であるか(または間違っていれば、真実ではない)より深い洞察を提供できますか?この質問は難しい部分がある場合にのみ質問されるようですが、私がコンパイルについて理解していることから、両方にリンクできないようなものはないようです。UNIX:実行可能ファイルを静的ライブラリと動的ライブラリの両方にリンクしていますか?
答えて
はい、もちろん、静的ライブラリと動的ライブラリの両方をリンクすることができます。静的ライブラリへのリンクは、アーカイブから必要なオブジェクトファイルを取得し、それらをリンクプロセスに含めることと本質的に同じです。
リンク先のスタティックライブラリとダイナミックライブラリがの同じライブラリの場合、ダイナミックリンクは冗長です。それでもやることは許されていますが、無意味です(少なくとも、Unixでは実行可能ファイルに不必要なランタイム依存性が導入されるだけです)。
FreeBSDやLinuxのような単一のリンカーシンボルスペースを持ついくつかの* nixでは、静的で共有されている同じlibをリンクすることは実際には不可能かもしれません。 –
一般に、静的ライブラリと動的ライブラリの両方にリンクできない理由はありません。特に、競合しない場合(たとえば、同じシンボルを指定するなど)は避けてください。これを行う仕組みはコンパイラによって異なりますが、多くのフリーソフトウェアプロジェクトが実際にこれを行います。いわゆる「コンビニエンスライブラリ」を静的に構築し、動的にリンクされた実行可能ファイルにリンクします。
私は「なぜ?」という質問に答えるのが難しいと思います。あなたができない理由がないからといっているようです。 –
@Logan私が思いつくことができる最良の答えは、リンカのコマンドライン(ao bo co)上の一連のオブジェクトとそれらを含む静的ライブラリ(libfoo.a )。最初のケースでは、共有ライブラリとリンクすることも可能であることは明らかです.2番目のケースはほぼ同等であるため、共有ライブラリとリンクすることもできます。 –
- 1. 他の静的ライブラリにリンクする静的ライブラリに動的ライブラリをリンクする
- 2. 静的ライブラリと動的ライブラリの両方を同じ実行可能な原因にリンクするにはどのような問題がありますか?
- 3. 実行可能ファイルから静的にリンクされたライブラリを抽出する
- 4. Qtで静的ライブラリと動的ライブラリの両方を使用できますか
- 5. 静的ライブラリとのリンク時にオブジェクトコードを実行可能ファイルにコピーする方法は?
- 6. Windowsでサードパーティのプリコンパイルされた動的ライブラリと静的ライブラリの両方をリンクする
- 7. 静的ライブラリと動的ライブラリ - more C++ fun
- 8. ビルド中に静的ライブラリを共有ライブラリにリンクしますか?
- 9. GNU libtoolで静的ライブラリと共有ライブラリの両方を作成しますか?
- 10. 静的ライブラリと再入可能のユーザカスタマイズ
- 11. 静的ライブラリと実行可能ファイルを単一のインストールで生成する(autoconf)
- 12. AndroidのJNI共有ライブラリに静的ライブラリをリンクします。
- 13. 実行可能ファイルに使用される静的ライブラリのリストを取得
- 14. Qt:ライブラリの静的リンク
- 15. ライブラリを静的に別の静的ライブラリにリンクする方法を教えてください。
- 16. 静的ライブラリ、Windowsプラットフォーム上の静的ライブラリについて
- 17. 静的ライブラリ内の静的ライブラリ
- 18. CMakeアプリケーションとDLLの両方が同じ静的ライブラリにリンクしていますか?
- 19. 同じライブラリを静的および動的にリンクする
- 20. 標準ライブラリで静的にリンクするときの動的プラグインのサポート方法
- 21. Qtサードパーティ製ライブラリとの静的リンク
- 22. Android NDK、2つの静的ライブラリとリンク
- 23. プロジェクトにSFML静的ライブラリをリンクする
- 24. ライブラリを静的にリンクする
- 25. 静的ライブラリをクラスライブラリプロジェクトにリンクする
- 26. 数学ライブラリは静的にリンクされていますか?
- 27. LLVMの静的ライブラリと共有ライブラリの両方をビルドするlibC++ 3.3
- 28. Makefileに静的ライブラリと動的ライブラリを作成する方法は?
- 29. OSXのgfortranライブラリで静的にリンクする正しい方法
- 30. Xcode静的ライブラリGLFW 3.3にリンクする
どうやったらいいですか?それを試しましたか?それは動作しましたか? ;-) がんばろう! – shellter