简体   繁体   中英

Luarocks fails install async

Hello fellow programmers,

I am starting to learn lua. From a readme document, I have to install "display" by luarocks, while the issue arose. When I input "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.

By far I have searched but not found related solution, I think the problem exist in the installation of "async", but I do not know how to fix it. Your help is appreciated!

Best, Marvin

I solved it by downgrading my gcc version using following commands

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

Hope this helps.

将名为cc的文件添加到PATH中某处,其中包含以下内容,然后在其上运行chmod +x cc

/usr/bin/"${0##*/}" "$@" -Wno-implicit-fallthrough

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM