Ubuntu在哪里存储其库文件?

我想添加我自己的库以用于c编译,但是不知道ubuntu在哪里存储它。

根据您对问题的评论,我认为您真正要问的是“如何安装我编写的自定义库以及我应该在哪里放置它?”

通常,在机器上向用户本地构建的东西都放在/ usr / local树中。 头文件应该进入/ usr / local / include。 编译好的库应该进入/ usr / local / lib。 .c文件不是库的一部分,它是源的一部分,而不是通常不为最终用户使用而安装的东西。 您需要root权限才能将文件放入这些位置。

要构建库,您需要首先构建是否需要静态或动态(共享)库。 有关创建共享库的更多信息, 请参见第2.4节“创建共享库”, url为http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html 。 (他们也有关于放置东西的建议 – 大多数开发人员会有一个或三个意见:-))

根据库,ubuntu将其库主要存储在三个位置

  1. / lib目录
  2. / usr / lib目录
  3. 在/ usr / local / lib目录

以下是文件系统层次结构标准

/ lib目录

/ lib目录包含引导系统和在根文件系统中运行命令所需的那些共享库映像,即。 通过/ bin和/ sbin中的二进制文件。

/ usr / lib目录

/ usr / lib包括不打算由用户或shell脚本直接执行的目标文件,库和内部二进制文件。 [22]

应用程序可以使用/ usr / lib下的单个子目录。 如果应用程序使用子目录,则应用程序专用的所有依赖于体系结构的数据都必须放在该子目录中。

/ usr / local / lib包含本地库,即一个特定于此系统的库但我在FHS中找不到对/ usr / local / lib的引用,它只包含/ usr / local的解释。

Ubuntu遵循Filesystem Hierarchy Standard( http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard ),常规应用程序库应存储在/ usr / lib下。

请注意,开发/管理库不是一个简单的主题,你应该阅读一些更详细的文档,这是一个很好的教程: http : //www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html

您应该告诉编译器它可以在哪里找到您的库。 假设您的库的路径是“/path/to/lib/libfoo.a”,您可以编译并链接您的程序“hello.c”,如下所示:

gcc -L/path/to/lib -lfoo hello.c 

这不是Ubuntu特有的,实际上我知道的所有C编译器都支持这些标志。

在Ubuntu中,它们位于/usr/include