Как я могу указать пути к файлам ресурсов в бинарном выпуске? - PullRequest
1 голос
/ 09 марта 2020

Я поддерживаю библиотеку, которая поставляется в комплекте с .xsd файлами для проверки XML. В настоящее время пользователи должны сообщить библиотеке, где находятся эти файлы, установив переменную среды. Я хотел бы иметь возможность компилировать в этом месте, так как забывание установить переменную среды является распространенной проблемой.

Я могу сделать это, если вы собираете библиотеку из исходного кода. Поскольку система сборки (CMake) знает путь установки, она может просто установить определение препроцессора, указывающее на каталог, в котором XSD-файлы go.

Когда дело доходит до распространения предварительно скомпилированного выпуска, это не работает, так как пути на сервере сборки не будут совпадать с пользователями.

Структура директории установки выглядит следующим образом:

<install_dir>
    - conf/
      - foo.xsd
      - bar.xsd
    - lib/
      - mylib.a

Как я могу сказать mylib.a, где foo.xsd живет, без использования абсолютных путей, которые будут указывать c для сборки сервер

1 Ответ

1 голос
/ 09 марта 2020

Я предполагаю, что вы знаете относительное расположение ваших файлов после установки (вы должны ).

Получите абсолютный путь к исполняемому файлу во время выполнения (у всех операционных систем есть способы сделать это).

Затем создайте путь к файлу ресурса относительно исполняемого файла, используя свои знания о месте установки файлов.

Теперь загрузите ресурс, используя созданный вами путь.

...