首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Makefile错误cd无法cd

Makefile错误cd无法cd
EN

Stack Overflow用户
提问于 2013-06-29 20:17:50
回答 1查看 2.7K关注 0票数 0

我是makefile的新手,我正在尝试更改makefile中的目录,我的问题是我无法更改这些目录,并且我收到以下消息: /bin/sh:1: cd无法cd to /home/.......

我的代码是:

代码语言:javascript
复制
 # !/bin/sh


CHECK_LIB = true`
DIR= /home/me/dir/

bootstrap:
ifeq($(CHECK_LIB), true)
cd $(DIR); ./bootstarp -c ;
endif

此外,我也尝试过$(shell cd $(DIR) ; ls ),但没有任何运气。有一些好的意见,我应该怎么做/试一下?操作系统: ubuntu 12.04 Tks!

EN

回答 1

Stack Overflow用户

发布于 2013-06-29 22:35:31

首先,您不需要在顶部使用/bin/sh,因为Makefile不是一个shell脚本,因此,规则是以TAB为前缀编写的。但是,条件句不是规则的一部分,因此,它们不需要在前面加上TAB。所以试试这个:

代码语言:javascript
复制
CHECK_LIB = true
DIR = /home/me/dir/

bootstrap:
ifeq($(CHECK_LIB), true)
<TAB>cd $(DIR) && ./bootstarp -c
endif

您也可以使用make shell命令,但不能在规则中使用:

代码语言:javascript
复制
ifeq($(CHECK_LIB), true)
BOOTSTRAP_OUT := $(shell cd $(DIR) && ./bootstarp -c)
endif

但我猜这不是您想要的,因为它将在任何规则之前执行,并且不考虑任何依赖关系。通过这种方式,您可以获取makefile中的文件/文件夹列表:

代码语言:javascript
复制
FILELIST := $(shell cd $(DIR) && ls)
$(warning FILELIST is $(FILELIST))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17380087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档