linux非root安装ninja

linux下非root权限安装ninja

RuntimeError: Ninja is required to load C++ extensions,解决

1.第一步安装re2c

https://github.com/skvadrik/re2c/releases/download/1.3/re2c-1.3.tar.xz,直接下载。

解压 tar xvf re2c-1.3.tar.xz

进入到目录,执行autoreconf -i -W all

错误:bash: autoreconf: command not found

安装autoreconf,直接下载

地址:ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz

解压:tar xzf autoconf-2.69.tar.gz

进入目录安装

./configure --prefix=/usr/local

出现错误M4的问题

checking for GNU M4 that supports accurate traces... configure: error: no acceptable m4 could be found in $PATH.

,下载gun m4,地址http://ftp.gnu.org/gnu/m4/ 1.4.16就可以。

解压m4-1.4.16.tar.gz,进入目录后./configure --prefix=/usr/local,出现错误

./stdio.h:477:1: error: ‘gets’ undeclared here (not in a function)
 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 ^

修改./m4-1.4.16/lib/stdio.h代码

change to

old:
#undef gets
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
new:
#undef gets
#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif

再执行

./configure --prefix=/usr/local
make && make install

回到autoconf的目录下./configure --prefix=/usr/local ,问题解决

make && make install 命令通过。

回到re2c的目录,autoreconf -i -W all。生成configure文件,./configure --prefix=/usr/local

make && make install

make check测试

执行通过。

vim ~/.profile 添加环境配置,export PATH=PATH=/usr/local/bin/re2c/bin:$PATH
re2c -V,检查版本号,表示安装成功。

2.安装ninja

在https://github.com/ninja-build/ninja/releases/tag/v1.10.2 下载源码

解压tar xzf ninja-1.10.2.tar.gz在ninja-1.10.2的路径下执行 ./configure.py --bootstrap,生成ninja可执行文件。

cp ninja /usr/bin/

ninja --verison,查看到版本号,ninja安装成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值