【问题标题】:Compilation fails: No such file or directory (but it DOES exist!)编译失败:没有这样的文件或目录(但它确实存在!)
【发布时间】:2017-07-01 11:18:49
【问题描述】:

我正在尝试编译Ethereum Go client。在the instructions 之后,我只是运行make geth,但失败了:

$ make geth
build/env.sh go run build/ci.go install ./cmd/geth
make: build/env.sh: No such file or directory
make: *** [geth] Error 1

据我从这个错误中了解到,它抱怨 build/env.shbuild/ci.go 不存在。所以我检查了构建文件夹,但它们似乎都在那里:

$ ls -l build
total 648
drwxr-xr-x  3 kramer65  staff     102 Feb 13 13:45 _vendor
-rw-r--r--  1 kramer65  staff    2892 Feb 13 13:45 ci-notes.md
-rw-r--r--  1 kramer65  staff   30516 Feb 13 13:45 ci.go             <===
-rw-r--r--  1 kramer65  staff     123 Feb 13 13:45 deb.changelog
... some other files here
-rw-r--r--  1 kramer65  staff     379 Feb 13 13:45 deb.rules
-rwxr-xr-x  1 kramer65  staff     721 Feb 13 13:45 env.sh            <===
-rw-r--r--  1 kramer65  staff    1722 Feb 13 13:45 mvn.pom
... and some more files here

我检查了是否安装了go以及它是哪个版本:

$ which go
/usr/local/bin/go
$ go version
go version go1.7.5 darwin/amd64

所以去似乎很好。

有人知道如何调试/解决这个问题吗?欢迎所有提示!

【问题讨论】:

    标签: go makefile compiler-errors compilation ethereum


    【解决方案1】:

    好吧,没关系。找到了。问题在于 dos 样式中的行尾。

    所以为了递归地将行尾转换为我运行的 unix:

    find . -type f -print0 | xargs -0 -n 1 -P 4 dos2unix
    

    然后再次尝试构建。这样就解决了。

    我希望这可以帮助这里的其他人。不管怎样,祝大家有个美好的一天!

    【讨论】:

      【解决方案2】:

      我按照以下说明解决了这个问题。我不知道原因,但我完全摆脱了brew 以使其运行。 (苹果) 1 install go(I used package) 2 git clone https://github.com/ethereum/go-ethereum 3 cd go-ethereum && git checkout tags/v1.8.2 4 run `find . -type f -print0 | xargs -0 -n 1 -P 4 dos2unix`(if you don't have dos2unix, you could brew one, it does not break anything.) 5 make geth 6 ln -s /path/to/origin/geth /path/to/target/geth 然后运行which geth 你可以找到你的geth。运行geth version就可以看到你的版本了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-13
        相关资源
        最近更新 更多