Ubuntu在哪里存储它的库文件?


17

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


5
它存储在/ usr / lib/ usr / include
karthick87

我确实在/ usr / include中找到了我的库,应该如何将它们放入?我应该只是将头文件和ac文件放在附近,还是应该将头文件和函数一起写入一个.h文件中?
david25 2010年

3
库和标头是不同的东西,/ usr / include不包含库,它包含标头,标头是库中可用的函数/对象的定义。这个问题应该改进,很难理解您要达到的目标。
若奥·平托

Answers:


11

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

通常,将本机上为其他用户本地构建的东西放到/ usr / local树中。头文件应该进入/ usr / local / include。编译后的库应该放在/ usr / local / lib中。.c文件不是库的一部分,它是源文件的一部分,并且不是通常不安装供最终用户使用的文件。您将需要root用户访问权限才能将文件放置在这两个位置中。

要构建该库,您将需要先构建以确定是要静态库还是动态(共享)库。有关创建共享库的更多信息,请参见 3.4节“创建共享库”,网址http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html。(他们还对放置东西的位置提出了建议-大多数开发人员将对这三点意见:-))


11

根据图书馆的不同,ubuntu主要将其图书馆存储在三个位置

  1. / lib
  2. / usr / lib
  3. / usr /本地/ lib

以下是文件系统层次结构标准中的内容

/ lib

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

/ usr / lib

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

应用程序可以使用/ usr / lib下的单个子目录。如果应用程序使用子目录,则必须将应用程序独占使用的所有与体系结构相关的数据放置在该子目录中。

/ usr / local / lib包含本地库,即该系统专用的一个库,但是在FHS中找不到对/ usr / local / lib的引用,它仅包含/ usr / local的说明。



0

您应该告诉编译器,它在哪里可以找到您的库。假定库的路径为“ /path/to/lib/libfoo.a”,则可以像下面这样编译并链接程序“ hello.c”:

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

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


-2

在Ubuntu中可以在中找到它们/usr/include


1
文件位于中/usr/include。库的实际二进制文件未存储在此处。标头可能被认为是库的一部分,但必须单独安装,并且它们用于编译使用库的程序。编译使用库的程序后,就不再需要或不再使用头文件。
伊利亚·卡根
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.