如何在C代码中获取传递给Autotools配置脚本的--prefix值?

如何在C代码中获取传递给Autotools配置脚本的--prefix值?,c,linux,autotools,anjuta,C,Linux,Autotools,Anjuta,我想知道如何在我的c源代码中获得传递给配置脚本(autotools)的--prefix和--exec prefix值 例如,如果我使用autotools在linux中构建软件包,我会: ./configure --prefix=/usr/local/apps --exec-prefix=/usr/local/apps && make && make install 应用程序使用的所有文件都将根据该值进行安装 例如,在我的“打开文件”应用程序中,我需要知道该值,才

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

例如,如果我使用autotools在linux中构建软件包,我会:

./configure --prefix=/usr/local/apps --exec-prefix=/usr/local/apps &&
make &&
make install
应用程序使用的所有文件都将根据该值进行安装

例如,在我的“打开文件”应用程序中,我需要知道该值,才能知道图像安装在何处,然后打开它

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

我怎么知道这些价值观

我在用Anjuta


提前感谢您的帮助。

通常的做法是通过
AC\u define
config.h
中为预处理器定义一个值,或者在
AM\u CPPFLAGS
中作为一个标志。例如,在Makefile.am中:

AM_CPPFLAGS = -DPREFIX="\"$(prefix)\""
这允许代码包含诸如
printf(“prefix=%s\n”,prefix)

请记住,源代码中字符串的值不会反映
DESTDIR
的任何值,因此,如果用户执行分阶段安装,则可能不起作用

通过AM_CPPFLAGS的解决方案非常有效。非常感谢你的帮助!!!我在想,在网上永远也找不到答案。所有的搜索都给了我很多相关的结果,但是没有答案。现在我知道如何改进我的搜索。我只需要调整一点斜杠:AM_CPPFLAGS=-DPREFIX=\“$(前缀)”\”我之前说的话非常有用,非常感谢。现在,我要学习如何使用AC_DEFINE;)@如果这个答案对你有用,你可能会想“接受”它。