include — Какие важные каталоги должен знать программист с ++ в файловой системе linux?

Это вопрос, который озадачивал меня больше года, но я никогда не пытался ответить на него … до сегодняшнего дня …

Я заметил, что у меня установлены SFML-«библиотеки» в / usr / local / include / SFML /.

Если я загляну внутрь этой директории, я вижу, что она содержит в основном заголовочные файлы. Поэтому я предполагаю, что каталог ‘include’ должен содержать заголовочные файлы, а не объектные файлы.

Это поднимает вопрос. Где «cmath» или «вектор»?

Оказывается, используя 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. Почему это?

0

Решение

Я не уверен, что есть конкретный ответ на этот вопрос, но я постараюсь дать хотя бы НЕКОТОРЫЕ указания.

типично /usr/local используется для «пользовательских установок». То есть это не часть фундаментальной установки. Конечно, это руководство, так что вы все равно найдете некоторые вещи, которые установлены в /usr/libкогда он действительно должен быть установлен в /usr/local/lib (или же /usr/local/lib{32,64} при необходимости).

И да, lib32 а также lib64 предназначен для библиотек, которые зависят от размера (хотя ваша программа будет отлично работать, если вы установите 32-битные библиотеки в lib64 и 64-битные в lib32 — просто будет сложнее следить за тем, что происходит, если вы это сделаете!).

Иногда это lib а также lib64 или же lib а также lib32, Это варьируется в зависимости от распределения. И если есть lib32 а также lib64, lib часто там хранятся вещи, которые не зависят от размера, такие как файлы конфигурации, которые хранятся в /usr/lib,

Есть, конечно, ДРУГИЕ каталоги, о которых полезно знать — ваш домашний каталог, /var/log/ для файлов журнала, /var/run для блокировки файлов и .pid файлы и другие файлы «состояния» для конкретного приложения, и есть /var/lib каталог также — который, кажется, содержит некоторый случайный выбор специфичных для компонента библиотек. THe /opt (что-то вроде другого варианта /usr/local/иногда используется для хранения двоичных файлов и т. д.

Редактировать:

Другая категория каталогов, о которых может быть полезно знать, — это /proc, /sys а также /dev каталоги.

/proc который поддерживается procfs Драйвер файловой системы в ядре дает информацию о том, что делает система, например, cat /proc/meminfo покажет статистику по памяти (и ее использованию), cat /proc/cpuinfo покажет какой процессор у машины. cat /proc/self/status покажет статус текущего процесса. Если вы хотите увидеть, что делает какой-то другой процесс, cat /proc/xx/status, где xx это идентификатор процесса (число) покажет, что делает этот другой процесс. Много больше доступно, если вы загляните внутрь — некоторые из них более полезны, чем другие.

/sys похожа на структуру /proc, но есть вещи, которые больше ориентированы на «систему», где /proc больше о процессах, но есть некоторые совпадения.

/dev/ является «рутом» для устройств. /dev/sda будет одним из ваших жестких дисков (но может иметь другое имя, в зависимости от того, какие именно у вас жесткие диски).

6

Другие решения

Вы должны прочитать это (для краткой версии):

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

и это (для всех скучных деталей):

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

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector