Я пишу программу для Linux на C ++, и мне нужно хранить некоторые дополнительные данные, такие как изображения. Такие вещи обычно находятся в / usr / share в Linux.
Пользователь может решить, куда устанавливать программное обеспечение (я использую CMake), поэтому я должен либо использовать / usr / share, / usr / local / share, / home / theuser / somefolder / share, либо любое другое, в зависимости от где он его установил.
Обычно я делаю это, выясняя абсолютный путь к моему двоичному файлу, вырезая конечный «мусорный контейнер» из пути и заменяя его «общим». Однако это довольно громоздко и не менее элегантно, поэтому мне было интересно, как это делали другие люди. Я использую Boost, но я не могу найти соответствующие функции.
Мне нужен только каталог share для этого проекта, но мне также было бы интересно узнать, как вы делаете это с каталогом etc (мой подход там не совсем работает, потому что бинарный файл может находиться в / usr / bin, пока файлы конфигурации находятся в / etc)