Luarocks 安装 async 失败

大家好,

我正在学习 Lua。从一个 Readme 文档上得知,我需要通过 Luarocks 安装"display",然而遇到了问题。当我输入"luarocks install display"时,

    Installing https://raw.githubusercontent.com/torch/rocks/master/display-scm-0.rockspec...
    Using https://raw.githubusercontent.com/torch/rocks/master/display-scm-0.rockspec... switching to 'build' mode

    Missing dependencies for display:
    async >= 1.0
    luasocket >= 2.0

    Using https://raw.githubusercontent.com/torch/rocks/master/async-scm-1.rockspec... switching to 'build' mode
    Cloning into 'async'...
    remote: Counting objects: 210, done.
    remote: Compressing objects: 100% (184/184), done.
    remote: Total 210 (delta 19), reused 172 (delta 19), pack-reused 0
    Receiving objects: 100% (210/210), 403.80 KiB | 437.00 KiB/s, done.
    Resolving deltas: 100% (19/19), done.
    make LUA_BINDIR=/home/marvin/torch/install/bin
    LUA_LIBDIR=/home/marvin/torch/install/lib
    LUA_INCDIR=/home/marvin/torch/install/include
    basename: missing operand
    Try 'basename --help' for more information.
    make -C lhttp_parser  LUA=
    LUA_BINDIR=/home/marvin/torch/install/bin
    LUA_LIBDIR=/home/marvin/torch/install/lib
    LUA_INCDIR=/home/marvin/torch/install/include
    make[1]: Entering directory '/tmp/luarocks_async-scm-1-9028/async/lhttp_parser'
    cc -c lhttp_parser.c -o lhttp_parser.o -Ihttp-parser -I
    /home/marvin/torch/install/include -D_LARGEFILE_SOURCE -
    D_FILE_OFFSET_BITS=64 -Wall -Werror -fPICCPPFLAGS=-fPIC make -C http-parser http_parser.o
    make[2]: Entering directory '/tmp/luarocks_async-scm-1-9028/async/lhttp_parser/http-parser'
    cc -fPIC -I. -DHTTP_PARSER_STRICT=0  -Wall -Wextra -Werror -O3  -c
    http_parser.c
    http_parser.c: In function ‘http_parser_parse_url’:
    http_parser.c:2093:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
     found_at = 1;
     ~~~~~~~~~^~~
   http_parser.c:2096:7: note: here
   case s_req_server:
   ^~~~
   cc1: all warnings being treated as errors
   Makefile:35: recipe for target 'http_parser.o' failed
   make[2]: *** [http_parser.o] Error 1
   make[2]: Leaving directory '/tmp/luarocks_async-scm-1-9028/async/lhttp_parser/http-parser'
   Makefile:17: recipe for target 'http-parser/http_parser.o' failed
   make[1]: *** [http-parser/http_parser.o] Error 2
   make[1]: Leaving directory '/tmp/luarocks_async-scm-1-9028/async/lhttp_parser'
   Makefile:6: recipe for target 'lhttp_parser/lhttp_parser.so' failed
   make: *** [lhttp_parser/lhttp_parser.so] Error 2

   Error: Failed installing dependency:
   https://raw.githubusercontent.com/torch/rocks/master/async-scm-1.rockspec - Build error: Failed building.

目前为止我已经搜索了很多但还没有找到相关解决方案,我认为问题存在于"async"的安装中,但是我不知道如何修复。 非常感谢您的帮助!

最好的祝愿, Marvin

点赞
用户9468609
用户9468609

我使用以下命令将我的 gcc 版本降级解决了问题:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5

希望这可以帮到您。

2018-03-09 16:19:53
用户541686
用户541686

将一个名为 cc 的文件添加到你的 PATH 中某个目录下,并包含以下内容,并在该文件上运行 chmod +x cc

/usr/bin/"${0##*/}" "$@" -Wno-implicit-fallthrough
2018-12-02 05:30:49