我希望我的应用程序能够便携访问make install
(dist_sysconf_DATA) 期间安装的配置文件。是否可以$(sysconfdir)
通过 config.h 访问?
问问题
1101 次
3 回答
3
是的,但你不应该按照官方的声音这样做(比如,我现在不打算在手册中搜索它),以便继续支持为要构建的特定对象覆盖它。
make CPPFLAGS="-USYSCONFDIR -DSYSCONFDIR=/blah" thisoneobject.o
因此,一个人应该做什么:
AM_CPPFLAGS = -DSYSCONFDIR=\"${sysconfdir}\"
于 2012-01-27T18:41:45.897 回答
1
如果您使用自动头文件,将其添加到您的 configure.ac 将在您的 config.h 中输出一个 SYSCONFDIR 宏,并且它将使用值 $(sysconfdir) 或 ${prefix}/etc 进行定义。
if test "x$sysconfdir" = 'x${prefix}/etc'; then
if test "x$prefix" = 'xNONE'; then
sysconfdir=$ac_default_prefix/etc
else
sysconfdir=$prefix/etc
fi
fi
AC_DEFINE_UNQUOTED([SYSCONFDIR], ["$sysconfdir"], [location of system configuration directory])
但我强烈建议不要这样做,而是坚持使用 -DSYSCONFDIR 标志。它的代码更少,因此不太容易出错。在 configure.ac 中使用我提到的条件可能无法移植或考虑到可能遇到的每种情况。使用 -DSYSCONFDIR 是最佳选择。有时候,外表并不重要。
于 2018-08-29T20:55:10.103 回答
0
我认为最常做的事情(这就是我所做的)
将以下内容添加到您的Makefile.am
AM_CPPFLAGS = -DSYSCONFIR='"$(sysconfdir)"'
现在您可以SYSCONFDIR
在源代码中访问
于 2012-02-20T03:08:58.323 回答