Я нахожусь в процессе перехода на Linux для разработки и озадачен тем, как обеспечить хорошую совместимость с FHS в моих программах.
Например, под Windows я знаю, что всеРесурсы (растровые изображения, аудиоданные и т. д.), в которых может нуждаться моя программа, можно найти по относительным путям из исполняемого файла, поэтому то же самое, если я запускаю программу из своего каталога разработки или из установки (в разделе «Program Files»).например, программа сможет найти все свои файлы.
Теперь под Linux я вижу, что обычно исполняемый файл находится в / usr / local / bin, а его ресурсы - в / usr / local /доля.(И правда в том, что я даже не уверен в этом)
По соображениям удобства (например, для контроля версий) я бы хотел, чтобы все файлы, относящиеся к проекту, имели одинаковый путь, скажем,например, project / src для источника и project / data для файлов ресурсов.
Существует ли какой-либо стандартный или рекомендуемый способ, позволяющий мне просто перестроить двоичный файл для тестирования и использовать файлы в каталоге project / data,и, в то же время, будучи в состоянии найти файлы, когда они находятся в / usr / local / share?
Я подумал, например, установить символическую ссылку в / usr / local / share, указывающую на мой каталог ресурсов, а затем просто жестко закодироватьэтот путь внутри моей программы, но я чувствую, что он довольно хакерский и не очень переносимый.
Кроме того, я подумал о запуске сценария установки, который копирует все ресурсы в / usr / local / share каждый раз, когда я меняю или добавляюресурсы, но я также считаю, что это не очень хороший способ сделать это.
Может кто-нибудь сказать мне или указать мне, где он рассказывает, как эта проблема обычно решается?
Спасибо!