3

我想知道如何在我的 c 源代码中获取传递给配置脚本(autotools)的 --prefix 和 --exec-prefix 值?

例如,如果我使用 autotools 在 linux 中构建一个包,我会这样做:

./configure --prefix=/usr/local/apps --exec-prefix=/usr/local/apps &&
make &&
make install

并且应用程序使用的所有文件都根据该值安装。

因此,例如,在我的打开文件的应用程序中,我需要知道该值才能知道图像的安装位置然后打开它。

我可以对该值进行硬编码,但我不想这样做,因为我只能在那里安装应用程序。

我怎么知道这些值?

我正在使用安朱塔。

在此先感谢您的帮助。

4

1 回答 1

5

通常的做法是为预处理器定义一个值,或者在config.hviaAC_DEFINE中,或者作为一个标志 in AM_CPPFLAGS。例如,在 Makefile.am 中:

AM_CPPFLAGS = -DPREFIX="\"$(prefix)\""

这允许代码包含类似的内容,printf( "prefix = %s\n", PREFIX ) 请记住源代码中的字符串值不会反映 的任何值DESTDIR,因此如果用户进行分阶段安装,则可能无法正常工作。

于 2013-02-01T21:25:51.493 回答