2017-09-24 標準Cライブラリいろいろ(GNUを中心に) プログラミング ※ 独断と偏見が混ざっています。 glibc 言わずと知れたGNUの標準Cライブラリ 主にLinuxで使われる POSIXなどUNIX系OSの標準機能を提供 組込み系で使うには重くてデカい、無用の機能が多い uClibc 組込みLinux向けのGNUの標準Cライブラリ uClinux向けに開発された 標準のLinuxにもMMUのないLinuxにも対応 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 AVRマイコン向け標準Cライブラリ AVR-GCCで使われる Arduinoでも使われている 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: なにそれ?