如何在 GNU automake 中转义程序名称?例如,以下工作:
lib_LTLIBRARIES = libc.la
libc_la_SOURCES = source.cc
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在程序名称上使用符号“加号”(+),如下所示:
lib_LTLIBRARIES = libc++.la
libc++_la_SOURCES = source.cc
Run Code Online (Sandbox Code Playgroud)
Make 将回应:
make[1]: *** No rule to make target 'libc++.c', needed by 'libc++.lo'. Stop.
Run Code Online (Sandbox Code Playgroud)
似乎没有找到 SOURCES 变量。我尝试在加号前面加上美元 ($)、反斜杠 (\) 和双反斜杠 (\\),但没有成功。
automake 将简单地用下划线替换所有奇怪的字符_,以生成变量名称。因此,要libc++.la在变量名称中引用您的库,请使用libc___la前缀(两 (2) 个下划线代表+字符,另一个 (1) 下划线代表.字符)。
Makefile.am因此,您的代码段将如下所示:
lib_LTLIBRARIES = libc++.la
libc___la_SOURCES = source.cc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
336 次 |
| 最近记录: |