如何在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变量。我尝试在加号前加上美元($),反斜杠(\)和双反斜杠(\\),但没有成功。
答案 0 :(得分:3)
automake将仅用下划线_
替换所有不可思议的字符,以生成变量名。
因此,要以变量名引用libc++.la
库,请使用libc___la
前缀(+
字符使用两(2)下划线,.
附加一个(1)下划线字符)。
您的Makefile.am
代码段如下所示:
lib_LTLIBRARIES = libc++.la
libc___la_SOURCES = source.cc