私はこのリンクhttp://cs.baylor.edu/~donahoo/practical/CSockets/textcode.htmlのサンプルソースコードを通じてネットワークプログラミングを学習しています。コンパイル時に、なぜSolaris環境で私は手動でソケットとnslライブラリをmakeファイルにリンクする必要があるのだろうかと疑問に思っていますが、Linuxマシンではそれをする必要はありませんか?* nixにソケット共有ライブラリを自動的にリンク
答えて
ドキュメント:http://developers.sun.com/solaris/articles/solaris_linux_app.html
、Linuxのlibcの、(すべてのプログラムにデフォルトでリンクされている-lc
、)はglibcはPOSIXのソケット部を含んでいるためです。そしてlinuxのnis/nis+
動的ライブラリはlibcによって動的に読み込まれます。
しかし、Solarisでは、基本的な機能を持つ多くのライブラリがあり、libcには含まれていません。 (libc、libucb、libmalloc、libsocket、libxnetなど)私は、彼が必要とするAPIのユーザー部分のみをリンクできるようにするのは設計ソリューションだと思います。
libcには、libaio、librt、libmの基本ライブラリもいくつかあります。
別個のライブラリを使用すると、システムの一部だけを更新する方が簡単です。同じシステムに共存するいくつかのライブラリのいくつかの実装(たとえば、古いバージョンのUNIXでより大きな互換性/回避策を提供する)を持つことが可能です。
この質問は、 http://web.archiveorange.com/archive/v/KcxCHdLNpD6NANxmAt3bhttp://mail.opensolaris.org/pipermail/opensolaris-code/2007-January/010316.html
真剣のlibcにはlibnslとlibsocket折りたたみ検討しています。
それだけで現在のPOSIXベースおよびその他の 標準ベースの機能を移動するとよいでしょう(Unix98のなど)はlibnsl + libsocket機能に をlibcのとはlibnsl/libsocket 内のすべてのcompatibiltyラッパーのものを維持するためにlibcが20年のUnixで肥大化するのを避けるために 下位互換性回避策
Linuxでは、ネットワーキングAPI全体がlibc.so
に実装されています。これはデフォルトですべてのCプログラムにリンクされていますが、Solarisでは別のライブラリで実装されています。使用
- 1. Tensorflow:共有ライブラリとの動的リンク
- 2. 共有ライブラリの動的リンクまたは動的ロード?
- 3. ビルド中に静的ライブラリを共有ライブラリにリンクしますか?
- 4. AndroidのJNI共有ライブラリに静的ライブラリをリンクします。
- 5. Cmake:リンク共有ライブラリ
- 6. スタティックライブラリを共有ライブラリにリンクする
- 7. MinGWとの静的/動的/共有リンク
- 8. 共有ライブラリとスタティックライブラリのリンク
- 9. Makefileリンク共有(ダイナミック)ライブラリ
- 10. 他の静的ライブラリにリンクする静的ライブラリに動的ライブラリをリンクする
- 11. 実行中に動的に共有ライブラリをロードする
- 12. 共有ライブラリをg ++とリンクする
- 13. CMakeと共有ライブラリをリンクする
- 14. 動的ローダーをフィックスアップ共有ライブラリのオフセットにエミュレートする
- 15. ブースト - 「静的」vs「共有」ライブラリ
- 16. 静的クラスメンバーの共有ライブラリ
- 17. OCamlコードと共有ライブラリのリンク
- 18. 共有ライブラリとLinux(elf)のリンク
- 19. 動的にロードされたPIC共有ライブラリがNPIC依存
- 20. 共有ライブラリのRTLD_DEEPBINDによる動的ロード
- 21. CMakeの:共有ライブラリに静的のlibgccとのlibstdC++に対するリンク
- 22. RSpecで自動的にコンテキストを共有する
- 23. 静的ライブラリを共有ライブラリに変換しますか?
- 24. 複数の共有リンクを複数の共有リンクに接続...
- 25. Cythonを使用してPythonを共有ライブラリにリンクする
- 26. GCCの共有ライブラリの特定のバージョンにリンクするには
- 27. 共有ライブラリが不思議にアプリケーションにリンクしない
- 28. ライブラリ自体にアクセスすることなく共有ライブラリにリンクすることはできますか?
- 29. muslがlibc.aを共有ライブラリにリンクできません
- 30. GCC共有ライブラリを実行可能ファイルにリンクする
ありがとうございました。私はまた、solarisシステムでは、アプリケーションを可能な限り小さくしようと考えていたので、動的リンク(http://pages.cs.wisc.edu/~thomas/X/static-linking .html) –