美文网首页部署运维
在WSL中安装swool报错 error: unrecogniz

在WSL中安装swool报错 error: unrecogniz

作者: 冬瓜桑 | 来源:发表于2018-03-19 23:44 被阅读10次

    未经授权,请勿转载~

    Windows Subsystem for Linux Ubuntu中使用pecl安装swool时遇到错误“error: C compiler cannot create executables”、“error: unrecognized command line option '-V'”

    解决方法

    先看解决方法, 将gcc版本降低到4.8即可,因为高版本gcc取消了-V参数:

    sudo apt install gcc-4.8 -y
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
    wget https://github.com/swoole/swoole-src/archive/v2.1.1.tar.gz
    wget https://github.com/swoole/swoole-src/archive/v2.1.1.tar.gz
    cd swoole-src-2.1.1/
    phpize
    ./configure
    make
    make install
    
    

    详细解决思路

    详细解决思路如下,有兴趣的童鞋请继续看:

    pecl install swool
    

    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for a sed that does not truncate output... /bin/sed
    checking for cc... cc
    checking whether the C compiler works... no
    configure: error: in `/home/www/swoole-src-2.1.1':
    configure: error: C compiler cannot create executables
    See `config.log' for more details

    不知道这个config.log文件在哪里,而且发现swool的版本也是1.x而不是2.x。于是下载swool的源码,重新进行编译安装

    wget  https://github.com/swoole/swoole-src/archive/v2.1.1.tar.gz
    cd swoole-src-2.1.1
    phpize
    ./configure
    

    依然报上面的错误,不过这次可以找到错误日志了

    cat config.log
    

    可以看到如下错误:

    cc: error: unrecognized command line option '-V'
    cc: fatal error: no input files
    #省略部分代码 ...
    cc: error: unrecognized command line option '-qversion'
    cc: fatal error: no input files
    #省略部分代码 ...
    configure:2582: cc    conftest.c  >&5
    cc: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found
    #省略部分代码 ...
    configure:2629: error: in `/home/www/swoole-src-2.1.1':
    configure:2631: error: C compiler cannot create executables
    See `config.log' for more details
    #省略部分代码 ...
    

    于是,从第一个错误开始寻找,google搜索“error: unrecognized command line option '-V'”
    找了半天都没有找到解决方案(主要是英文烂),有说要安装openssl的, 有说要装pkg-config的,还有几个记不清了,都装了还是报错,几乎要放弃
    终于看到一个帖子说gcc高于4.9的版本貌似取消了-V参数,迎来了曙光~
    使用gcc --version 查看版本发现是5.4.0
    问题找到:
    wsl ubuntu的版本为16.04,apt默认安装的gcc版本为5.4.0,该版本gcc不支持-V参数
    立刻搜索“apt修改软件版本”, 找到~Ubuntu安装切换多个软件版本 http://blog.csdn.net/honyniu/article/details/46370491

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
    

    重新安装,搞定收工

    相关文章

      网友评论

        本文标题:在WSL中安装swool报错 error: unrecogniz

        本文链接:https://www.haomeiwen.com/subject/jtwmqftx.html