这个问题让我困惑了一年多,但我从来没有费心去尝试回答......直到今天......
我注意到我在'/ usr / local / include / SFML /'下安装了SFML“库”。
如果我查看该目录,我发现它主要包含头文件。所以我猜测'include'目录应该包含头文件而不是目标文件。
这提出了一个问题。 'cmath'或'vector'在哪里?
原来,使用find,它们被放在'/usr/include/c++/4.7/cmath'中 - 基本上是'/ usr / include /'
那么本地include('/ usr / local / include')和include目录('/ usr / include')之间的区别是什么?
在文件系统中,我看到很多'lib','lib32'和'lib64'导演。我的猜测是编译的.cpp文件或目标文件都在这些目录中。我猜测lib是在64位架构进入游戏之前使用的旧目录。我猜测现代接受的事情是将您的32位目标文件放在lib32中,将64位版本放在lib64中。这是对的吗?
有一个'/ usr / local / lib'目录。
但是还有一个'/ usr / lib'目录。再次,为什么还有一个“本地”的?
另外,在'/ usr /'里面有一个'lib','lib32'和'lib64'。但是,在'/ usr /'里面只有一个'lib'目录。这是为什么?
答案 0 :(得分:6)
我不确定这个问题是否有具体的答案,但我会尽量给出一些指导。
通常/usr/local
用于“自定义安装”。也就是说,它不是基本安装的一部分。当然,这是一个指南,因此您仍然可以找到/usr/lib
中安装的一些内容,它们应该真正安装在/usr/local/lib
(或/usr/local/lib{32,64}
中)。
是的,lib32
和lib64
适用于与大小相关的库(尽管如果在lib64中安装32位库,在lib32中安装64位库,程序将完美运行 - 如果你这样做,那就更难理解发生的事情!)。
有时它是lib
和lib64
或lib
和lib32
。这取决于分布。如果有lib32
和lib64
,lib
通常会保存“与大小无关”的内容,例如存储在/usr/lib
中的配置文件。
肯定有其他有用的目录 - 您的主目录,/var/log/
表示日志文件,/var/run
表示锁定文件和.pid
文件以及其他“状态”文件对于特定的应用程序,也有一个/var/lib
目录 - 它似乎包含一些随机选择的特定于组件的库。 /opt
(这是/usr/local/
的另一种变体)有时用于存储二进制文件等。
编辑:
另一类可能有用的导演是/proc
,/sys
和/dev
目录。
/proc
文件系统驱动程序支持的 procfs
提供有关系统正在执行的操作的信息,例如: cat /proc/meminfo
将显示内存的统计信息(及其用法),cat /proc/cpuinfo
将显示该机器的CPU。 cat /proc/self/status
将显示当前进程的状态。如果您想查看其他进程的作用,cat /proc/xx/status
,其中xx
是进程ID(数字)将显示其他进程正在执行的操作。如果你看看里面有更多可用 - 其中一些比其他更有用。
/sys
与/proc
的结构类似,但其内容更加“系统”,其中/proc
更多关于流程,但存在一些重叠。
/dev/
是设备的“根”。 /dev/sda
将是您的硬盘之一(但可能有另一个名称,具体取决于您拥有的硬盘)。
答案 1 :(得分:1)