標準Cライブラリいろいろ(GNUを中心に)

※ 独断と偏見が混ざっています。

glibc

  • 言わずと知れたGNUの標準Cライブラリ
  • 主にLinuxで使われる
  • POSIXなどUNIX系OSの標準機能を提供
  • 組込み系で使うには重くてデカい、無用の機能が多い

uClibc

newlib

  • 組込みマイコン向けのGNUの標準Cライブラリ
  • マイコンGCCで多く使われる (AVR-GCCでは後述のAVR libcが使われる)
  • 軽量化したnewlib-nanoもある
  • PSoC Creatorではnewlib-nanoがデフォで使われる (printf類の%fも無効がデフォ)

redlib

  • CodeRed社(LPCXpressoの開発元)の独自実装
  • LPCXpressoのCプロジェクトではデフォで使われる (C++だとnewlib)
  • C90準拠でサイズが小さい (いくらかC99拡張あり)
  • C++には対応できない
  • コードサイズはおおむね、newlib-nano < redlib < newlib となる

AVR libc

Bionic

  • Androidで使われてるやつ (Google製)
  • ライセンス上の理由でglibcを避けた結果
  • BSD libcがベース

Microsoft Runtime Library

  • 言わずと知れたWindowsで使われてるやつ
  • 言うまでもないが、オープンではない
  • もちろん、だから悪いという話では決してない

マイコン向け商用コンパイラの標準Cライブラリ

  • KeilとかIARとかXC(PIC)とかルネサス純正とか各々の独自実装
  • 言うまでもないが、オープンではない
  • もちろん、だから悪いという話では決してない

その他

  • BSD libc: BSD系OSで使われる (しらんけど)
  • dietlibc: これもGNU系の組込み向け実装? (しらんけど)
  • EGLIBC: これもGNU系の組込み向け実装? (しらんけど)
  • klibc: なにそれ?
  • musl: なにそれ?