2011-05-14 65 views
1

我试图用make安装包去,但它返回如下:化妆找不到文件

[email protected]:~/GoMySQL$ make 
Makefile:1: :/home/dan/.go/go/src/Make.inc: No such file or directory 
Makefile:17: :/home/dan/.go/go/src/Make.pkg: No such file or directory 
make: *** No rule to make target `:/home/dan/.go/go/src/Make.pkg'. Stop. 

,但丢失的文件都存在,如果我跑ls

[email protected]:~/GoMySQL$ ls /home/dan/.go/go/src/ 
all.bash  env.bash make.bash Make.common quietgcc.bash 
all-qemu.bash lib9  Make.ccmd Make.inc  run.bash 
clean.bash  libbio Make.clib Make.pkg  sudo.bash 
cmd   libmach Make.cmd pkg   version.bash 

这是为什么?

编辑:的Makefile:

include $(GOROOT)/src/Make.inc 

TARG=mysql 
GOFILES=mysql.go\ 
    types.go\ 
    const.go\ 
    error.go\ 
    password.go\ 
    reader.go\ 
    writer.go\ 
    packet.go\ 
    convert.go\ 
    handler.go\ 
    result.go\ 
    statement.go 

include $(GOROOT)/src/Make.pkg 
+1

那么'GOROOT'中有什么? – 2011-05-14 19:05:00

+2

@mu太短:我猜它被分配为'GOROOT =:/ path',即':='被误输入为'=:' – ninjalj 2011-05-14 19:12:10

+0

哦,'GOROOT'被分配到了Makefile之外?然后我的下一个猜测是'出口GOROOT = $ EMPTY_VAR:$ GOROOT' – ninjalj 2011-05-14 19:17:01

回答

6

在此错误消息:

Makefile:1: :/home/dan/.go/go/src/Make.inc: No such file or directory 
      ^

我有点用冒号表示惊讶。

我们需要看看在Makefile中设置了什么GOROOT,这并不容易。我不太了解构建包,但从命令行尝试:

echo $GOROOT 

并报告打印内容。

然后尝试更改Makefile。在它的开始,添加:

foobar: 
    echo $(GOROOT) 

其中回声线必须与标签,没有空格的缩进,并告诉我们,生产什么。

+0

检查编辑后 – danwoods 2011-05-14 19:03:05

+0

谢谢。这导致我回答。我并不真正了解.bashrc,并在目录前添加了冒号,认为这是正确的语法。删除.bashrc中的冒号解决了这个问题。 – danwoods 2011-05-14 19:20:11