gccとglibcの関係glibcバージョンは調べます.

2049 ワード

原文の住所:http://www.cnblogs.com/jiqiubo/archive/2011/08/03/2126117.html
glibcとは何ですか?そしてgccとの関係ですか?
glibcはgnuが発表したlibcライブラリ、つまりcライブラリです.glibcはlinuxシステムの最下層のapiで、ほとんど他のどのライブラリもglibcに頼っています.glibcは、linuxオペレーティングシステムによって提供されるシステムサービスをカプセル化する以外に、その自身も多くの他の必要な機能サービスの実現を提供しています.
(1)string、文字列処理
(2)signal、信号処理
(3)dfcn、共有ライブラリのダイナミックロードを管理する
(4)direct、ファイルディレクトリ操作
(5)elf、共有ライブラリのダイナミックキャリア、すなわちinterpreter
(6)iconv、異なる文字セットの符号化変換
(7)inet、socketインターフェースの実現
(8)intl、国際化、つまりgettextの実現
(9)io
(10)linuxthreads
(11)ロカノール、ローカライズ
(12)login、仮想端末装置の管理、およびシステムのセキュリティアクセス
(13)malloc、ダイナミックメモリの割り当てと管理
(14)nis
(15)stdlib、その他基本機能
gccはコンパイラです.基本的にLinuxではすべてのプログラム(カーネルを含む)がgccでコンパイルされています.libcももちろんです.
gccとlibcは互いに依存している二つのソフトウェアであり、それらが協力する方式はLinuxシステムの「自挙」に似ています.まず、古いlibcとgccのシステムを実行して、古いgccで新しいバージョンのgcc+古いlibcをコンパイルして、この新しいgccを使って新しいgcc+新しいlibcをコンパイルします.
 
glibcバージョンの表示
4.9. Howcan I find out which version of glibc I am using in the moment?
 
{UD} If you want to find out about theversion from the command line simply
run the libc binary.  This is probably not possible on allplatforms but
where it is simply locate the libc DSOand start it as an application.  On
Linux like
 
     /lib/libc.so.6
 
This will produce all the informationyou need.
 
What always will work is to use the APIglibc provides.  Compile and run the
following little program to get theversion information:
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include <stdio.h>
#include <gnu/libc-version.h>
int main (void) { puts(gnu_get_libc_version ()); return 0; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
This interface can also obviously beused to perform tests at runtime if
this should be necessary.
Just execute:
ldd --version
which comes with glibc package
*ただし、ARMボード上では、1)/lib/libc.so.6を通過できません.   2)ldd-versionコマンドは、対応するgLibcバージョンを確認しましたが、どうやって直接コマンドで確認しますか?