0

这是一个困扰我一年多的问题,但我从来没有费心去尝试回答它......直到今天......

我注意到我在“/usr/local/include/SFML/”下安装了 SFML“库”。

如果我查看该目录,我发现它主要包含头文件。所以我猜一个“包含”目录应该包含头文件而不是目标文件。

这就提出了问题。“cmath”或“vector”在哪里?

原来,使用 find,它们被放置在 '/usr/include/c++/4.7/cmath' - 基本上是 '/usr/include/'

那么本地包含('/usr/local/include')和包含目录('/usr/include')有什么区别?

在文件系统中,我还看到了许多“lib”、“lib32”和“lib64”导向器。我的猜测是编译的 .cpp 文件或目标文件位于这些目录中。我猜 lib 是在 64 位架构进入游戏之前使用的旧目录。我猜现代公认的做法是将你的 32 位目标文件放在 lib32 中,将你的 64 位版本放在 lib64 中。那是对的吗?

有一个“/usr/local/lib”目录。

但也有一个“/usr/lib”目录。再说一次,为什么要增加一个“本地”?

此外,在“/usr/”内部还有一个“lib”、“lib32”和“lib64”。但是,在 '/usr/' 里面只有一个 'lib' 目录。为什么是这样?

4

2 回答 2

6

我不确定这个问题是否有具体答案,但我会尽量提供至少一些指导。

通常/usr/local用于“自定义安装”。也就是说,它不是基本安装的一部分。当然,这是一个指导方针,所以你仍然会发现一些安装在 中的东西/usr/lib,当它真的应该安装在/usr/local/lib(或/usr/local/lib{32,64}适当时)时。

是的,lib32并且lib64适用于依赖于大​​小的库(尽管如果您在 lib64 中安装 32 位库和在 lib32 中安装 64 位库,您的程序将完美运行 - 如果您这样做,则更难了解正在发生的事情!)。

有时是libandlib64liband lib32。这取决于分布。如果存在lib32and lib64lib则通常会保存“大小无关”的东西,例如存储在/usr/lib.

当然还有其他有用的目录-您的主目录,/var/log/用于日志文件,/var/run用于锁定文件和.pid文件以及特定应用程序的其他“状态”文件,并且还有一个/var/lib目录-似乎包含一些随机选择特定于组件的库。THe /opt(这是 的另一种变体/usr/local/)有时用于存储二进制文件等。

编辑:

可能对了解有用的另一类目录是/proc,/sys/dev目录。

/proc它由procfs内核中的文件系统驱动程序支持,提供有关系统正在做什么的信息,例如cat /proc/meminfo将显示内存的统计信息(以及它的使用情况),cat /proc/cpuinfo将显示机器拥有的 CPU。cat /proc/self/status将显示当前进程的状态。如果您想查看其他进程在做什么cat /proc/xx/statusxx进程 ID(数字)在哪里,将显示其他进程在做什么。如果你往里面看,还有很多可用的东西——其中一些比其他的更有用。

与的/sys结构相似/proc,但具有更多面向“系统”的东西,其中/proc更多关于流程,但有一些重叠。

/dev/是设备的“根”。/dev/sda将是您的硬盘之一(但可能有另一个名称,具体取决于您拥有的硬盘)。

于 2013-06-24T12:51:11.883 回答
1

你应该阅读这个(短版):

http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

还有这个(对于所有无聊的细节):

http://www.pathname.com/fhs/pub/fhs-2.3.html

于 2013-06-24T14:02:44.520 回答