在linux下为我们的开发工作,我有一个Eclipse Makefile C项目,我试图用这个覆盖make命令,以便我在运行之前运行自定义脚本来设置其他变量(更容易保留一个脚本)同步而不是一直覆盖多个单独的项目env变量
制作命令:./ setenv.sh&&使
用于测试的脚本内容
#!/bin/sh
echo "setenv.sh"
在Eclipse(构建项目)中运行时,我看到了脚本输出,但是在脚本完成后似乎永远不会调用make。也许我错过了一些东西,脚本需要某种类型的返回值,运行后它会返回“false”并且链条不会继续但我在搜索中找不到任何关于如何使其工作的信息
注意:这是在Eclipse 3.5 Galileo
上由于
答案 0 :(得分:0)
这可能是因为./setenv.sh && make
是一个shell命令,需要一个解释器来正确执行它。
我建议您将Make命令设置为:
sh -c './setenv.sh && make'
要让make目标也被传递,可以使用shell提供的$0
和$@
:
sh -c './setenv.sh && $0 $@' make
来自bash manual:
-c
string处理选项后,从 string 读取并执行命令,然后退出。从
$0
开始,将任何剩余的参数分配给位置参数。
也就是说,在Eclipse将附加参数添加到此命令之后,它将如下所示:
sh -c './setenv.sh && $0 $@' make targets...
shell将$0
与make
和$@
替换为其余传递的参数(如果有),在上面的示例中它们是targets...
。毕竟,实际执行的命令是:
./setenv.sh && make targets...