2014-02-09 2 views
0

Autoconf может помочь сгенерировать сценарий configure, который принимает параметр --prefix. Таким образом, пользователи могут указать путь, на котором установлены программы/данные.Как использовать PREFIX, созданный autoconf в исходном файле

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

GCC -DPREFIX "/ USR/акция"

и в исходном файле, путь данных генерируются в

#define DATAPATH PREFIX "/ данные"

с autoconf, как я могу использовать путь, указанный --prefix в исходном коде? Для этого существует предопределенный MACRO?

+2

Что делать, если приложение было перемещено/переупаковано после 'make install'? время компиляции/make install --prefix - это то, на что вы не должны полагаться во время выполнения. –

+0

Идея состояла в том, чтобы ссылаться на некоторые файлы изображений, которые должны быть загружены во время выполнения. Эти файлы изображений устанавливаются в «/ usr/share/pkgname/images» .Какое лучшее решение для этого? – jcadam

ответ

0

Эта проблема может быть решена automake. Определение AM_CFLAGS как

AM_CFLAGS = -DPKGDATA=$(pkgdata) 

Automake продлит $ (pkgdata) к /usr/share/<pkgname>/ если --prefix является /usr/.

+1

Я бы предложил использовать 'AM_CPPFLAGS' - это определение препроцессора в конце концов - и оно появится в C/C++. На самом деле многие полезные переменные, заданные с помощью '--prefix' и т. Д., [Уже доступны] (http://www.gnu.org/software/autoconf/manual/autoconf.html#Installation-Directory -Variables) в 'Makefile.am'. –

 Смежные вопросы

  • Нет связанных вопросов^_^