自动制作中的转义程序名称

时间:2018-06-20 11:36:24

标签: automake

如何在GNU automake中转义程序名称?例如,以下作品:

lib_LTLIBRARIES = libc.la

libc_la_SOURCES = source.cc

但是,如果我尝试在程序名称上使用符号'plus'(+),如下所示:

lib_LTLIBRARIES = libc++.la

libc++_la_SOURCES = source.cc

Make会回应:

make[1]: *** No rule to make target 'libc++.c', needed by 'libc++.lo'.  Stop.

似乎没有找到SOURCES变量。我尝试在加号前加上美元($),反斜杠(\)和双反斜杠(\\),但没有成功。

1 个答案:

答案 0 :(得分:3)

automake将仅用下划线_替换所有不可思议的字符,以生成变量名。 因此,要以变量名引用libc++.la库,请使用libc___la前缀(+字符使用两(2)下划线,.附加一个(1)下划线字符)。

您的Makefile.am代码段如下所示:

lib_LTLIBRARIES = libc++.la
libc___la_SOURCES = source.cc