2016-12-24 159 views
0

我從一本書學習C語言。這本書提到了檔案文件:Linux上的檔案文件在哪裏?

檔案包含.o文件 曾經使用.zip或.tar文件嗎?然後你知道如何創建一個包含其他文件的文件。這正是一個.a檔案文件的 :一個包含其他 文件的文件。 打開終端或命令提示符並將其更改爲其中一個庫目錄。這些是 目錄,如/ usr/lib或C:\ MinGW \ lib,其中 包含庫代碼。在一個圖書館目錄中,你會找到大量的.a檔案。並且有一個名爲nm的 命令,您可以使用它來查看 這些命令。

但是,當我查找書籍所說的lib位置(在Ubuntu上)時,沒有找到存檔文件。 如何查看這些存檔文件?

+3

'.a'是一個靜態庫。 '.so'是一個動態庫。 – drescherjm

+1

/usr/lib/usr/share/lib/lib及其樹,儘管文件也可以鏈接到這些文件夾。 – drescherjm

回答

1

系統庫的位置可能會在不同的發行版中稍有變化。在Ubuntu上,你可以在/usr/lib/x86_64-linux-gnu/usr/lib32中分別找到64位和32位的靜態庫(這實際上在舊的Ubuntu發行版中略有不同)但是在最近的發行版(Ubuntu 12)中,這是一致的)。

1

這取決於您安裝的軟件包。

例如,如果你安裝traceroute,那麼你應該看到在/ usr/lib中/像這樣:

# ls -l /usr/lib/*.a 
-rw-r--r-- 1 root root 22448 Aug 29 12:45 /usr/lib/libsupp.a 

您可以輕鬆地製作自己的庫。例如:

mylib.c

int hello() 
{ 
    return 1; 
} 

test.c的

#include <stdio.h> 

int hello(); 

int main() 
{ 
    printf("Hello returned: %d\n", hello()); 
    return 0; 
} 

執行:

$ cc -c -o mylib.o mylib.c 
$ ar r mylib.a mylib.o 
$ cc -o test test.c mylib.a 

$ ./test 
Hello returned: 1