在gcc手冊中給出了「C標準庫本身 存儲在'/usr/lib/libc.a'」中。我安裝了gcc,但在上述位置找不到libc.a。很想知道它在哪裏。C標準庫的位置
我在/ usr/lib位置找到很多.so文件。那些是什麼?
在gcc手冊中給出了「C標準庫本身 存儲在'/usr/lib/libc.a'」中。我安裝了gcc,但在上述位置找不到libc.a。很想知道它在哪裏。C標準庫的位置
我在/ usr/lib位置找到很多.so文件。那些是什麼?
有幾件事情:
.a
文件是靜態庫,.so
意味着共享對象,就是Linux相當於一個DLL希望掃清它適合你。至於位置,這幾乎肯定會在/usr/lib/libc.a
和/或/usr/lib/libc.so
。就像我說的那樣,這個更常見。
是libc.so動態鏈接和libc.a靜態鏈接? – devnull 2011-05-08 05:16:56
libc.so和libc.a都提供相同的功能。不同之處在於,如果您鏈接到libc.so,那麼無論何時升級libc.so,您的程序都可以在不進行任何更改的情況下獲得升級的好處。但是,如果您鏈接到libc.a,則所有功能都打包到您的程序中。 libc的新更新不會更新你的程序,所以它將不得不重新編譯。 – 2011-05-08 05:19:07
所以是的,.so是動態鏈接的,.a是靜態鏈接的。 – 2011-05-08 05:19:51
在CentOS 5.8
$ ls -l /usr/lib/libc.a
-rw-r--r-- 1 root root 2442786 Apr 8 2010 /usr/lib/libc.a
$ rpm -qf /usr/lib/libc.a
glibc-devel-2.3.4-2.43.el4_8.3
你還必須有glibc-devel
包下RedHat分發安裝。
如果你在Linux(rpm),那麼你將得到安裝glibc的位置 和rpm -ql glibc-devel
。
locate libc.a
會讓你的位置。 rpm -qf /usr/lib/libc.a
這裏是rpm -qi
必須告訴這些包
的glibc-devel的:和它是從哪裏來確實看到
glibc的-devel軟件包中包含目標文件需要 用於開發使用標準C庫(幾乎所有程序使用的 )的程序。如果您正在開發 將使用標準C庫的程序,則您的系統需要具有這些 標準目標文件才能創建 可執行文件。 安裝的glibc-devel的,如果你要發展,這將 使用標準C庫
程序
的glibc:
glibc的包包含在系統上使用的 多個程序標準庫。爲了節省磁盤空間和內存,並使升級更容易,常用的系統代碼是 保存在一個地方並在程序之間共享。該特定包 包含最重要的共享庫集:標準C 庫和標準數學庫。沒有這兩個庫,Linux系統將無法運行。
您需要爲單獨靜態庫的安裝包: 的glibc-static.i686
如果您正在尋找libc.a
:
$ gcc --print-file-name=libc.a
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libc.a
謝謝我試圖在/ usr找到它,但沒有找到。你的命令幫了很大忙。 – 2017-01-04 06:39:46
你試着問你的包管理器? – 2011-05-08 04:56:50
libc.so怎麼樣? – Mayank 2011-05-08 04:58:17
在哪個操作系統中? – 2011-05-08 04:59:44