makefile echo 宏变量

2016-02-03 19:45:34 +08:00
 youthy

对 makefile 不是很熟,有个问题
假如定义一段宏代码
define TPL
XXXX
XXXX
endef

all:
echo "${TPL}"

会报 Unterminated quoted string 错误
要怎么按照原格式打印出这段宏呢

2095 次点击
所在节点    问与答
5 条回复
framlog
2016-02-03 20:33:02 +08:00
感觉直接用\n 吧
tracyone
2016-02-03 20:48:42 +08:00
无法重现,感觉 XXXX 是导致错误的关键……
youthy
2016-02-04 10:23:30 +08:00
@tracyone 确实是, TPL 是一段 erlang 代码 如果只有一行是成功的,但是好多行就失败了 宏如下
define tpl_supervisor
-module($(n)).
-behaviour(supervisor).

-export([start_link/0]).
-export([init/1]).

start_link() ->
supervisor:start_link({local, ?MODULE}, ?MODULE, []).

init([]) ->
Procs = [],
{ok, {{one_for_one, 1, 5}, Procs}}.
endef
youthy
2016-02-04 10:28:59 +08:00
@framlog \n 也没有效果。。。。
framlog
2016-02-04 21:05:48 +08:00
@youthy 我指的是全写一行然后该换行的地方用\n 。不过这么多行你直接用 subst 吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/255263

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX