Я пытаюсь использовать GNU AutoTools для моего проекта C ++. Я написал configure.ac, makefile.am и т. Д. У меня есть несколько файлов, которые используются программой во время выполнения, например, файлы шаблонов, схемы XML и т. д. Итак, я устанавливаю / копирую эти файлы вдоль исполняемого файла, для чего я использую что-то вроде:
abcdir = $(bindir)/../data/abc/
abc_DATA = ../data/knowledge/abc.cc
Теперь он правильно копирует файл, и структура установки моей программы выглядит следующим образом:
<installation_dir>/bin/<executableFile>
<installation_dir>/data/abc/abc.cc
Теперь проблема в том, что в исходном коде я фактически использую эти файлы (abc.cc и т. Д.), И для этого мне нужен путь, где находятся эти файлы, чтобы открыть их. Одно решение состоит в том, чтобы определить (используя AC_DEFINE) некоторую переменную, например. _ABC_PATH_ это указывает на путь установки, но как именно это сделать? ИЛИ есть ли лучший способ сделать это. Например, в исходном коде я делаю что-то вроде:
...
ifstream input(<path-to-abc-folder> + "abc.cc"); // how to find <path-to-abc-folder>?
..