Я провел некоторое исследование по этому вопросу, и я хотел поделиться тем, что сработало для меня.Я создал структуру каталогов следующим образом:
/
|->src/
| |-> Makefile.am
| |-> main.cpp
| |-> functions.cpp
|
|-> data/
| |-> Makefile.am
| |-> somethings.png
| |-> something.mp3
|-> configure.ac
|-> README
|-> NEWS, AUTHORS etc. etc.
Я поместил все свои изображения, шрифты, звуки и т. Д. В папку данных.Makefile.am в папке с данными выглядит так:
pkgdata_DATA = esound.wav \
another.wav \
apicture.png
В нем просто перечислены все файлы, которые должны быть в конечном итоге в каталоге данных.Makefile.am в папке src выглядит следующим образом:
bin_PROGRAMS = mygame
mygame_SOURCES = main.cpp functions.cpp
AM_CPPFLAGS = -DDATADIR=\"$(pkgdatadir)\"
Важной частью здесь является AM_CPPFLAGS, который определяет макрос DATADIR в соответствии с параметрами, передаваемыми в сценарий конфигурации.Тогда мы можем использовать этот макрос в наших исходных файлах следующим образом:
background = load_image( DATADIR "/background.png");
, чтобы ваша программа скомпилировалась, зная, где в файловой системе должен находиться фоновый файл.