安装depot_tools
国内服务器可用gitee码云镜像
#如果没有安装git,需要先安装 yum install git cd /tmp # depot_tools安装 git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=`pwd`/depot_tools:"$PATH" # 下载 v8 这一步很慢,需要耐心等待(如果你的gcc -v 版本不是7.5以上的话,请先进入底下的故障解决先升级gcc) fetch v8 cd v8 # 选择你想编译的版本 git checkout 7.5.288.23 gclient sync # Setup GN tools/dev/v8gen.py -vv x64.release -- is_component_build=true use_custom_libcxx=false # 开始编译,这里容易出错,如果报错的话,按提示,对照下面的说明 ninja -C out.gn/x64.release/ # Install to /opt/v8/ sudo mkdir -p /opt/v8/{lib,include} sudo cp out.gn/x64.release/lib*.so out.gn/x64.release/*_blob.bin \ out.gn/x64.release/icudtl.dat /opt/v8/lib/ sudo cp -R include/* /opt/v8/include/
安装v8js
cd /tmp git clone https://github.com/phpv8/v8js.git cd v8js phpize ./configure --with-v8js=/opt/v8 LDFLAGS="-lstdc++" --with-php-config=/www/server/php/72/bin/php-config make make test sudo make install
故障解决
Windows可以使用phpenv,然后下载别人编译好的版本,放在PHP目录后在Phpstudy中启用此版本即可:https://www.apachelounge.com/viewtopic.php?t=6359
编译v8引擎的过程中最容易出错,最关键是要选用最新的gcc引擎,centos默认4.85的编译器会失败,要升级到最新,我这里用的是7.5版本。
# 如果提示GLIBC_2.18 not found GLIBCXX\_3.4.21 not found,这里有个巨坑,系统自带的gcc是4.8版本,make gcc7.5后,需要重启一下电脑才能生效,如果是全新的机器,如果gcc版本是7.5以下,建议先安装编译器再装其他 cd /tmp wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-2.18.tar.gz tar -xzvf glibc-2.18.tar.gz cd glibc-2.18 mkdir build && cd build ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin make -j4 && make install # cd /tmp wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz tar -xzvf gcc-7.5.0.tar.gz cd gcc-7.5.0 ./contrib/download_prerequisites mkdir build && cd build ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib make -j4 && make install find / -name "libstdc++.so*" cp /tmp/gcc-7.5.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24 /usr/lib64 cd /usr/lib64 rm -rf libstdc++.so.6 ln -s libstdc++.so.6.0.24 libstdc++.so.6 strings /usr/lib64/libstdc++.so.6 | grep GLIBC # gcc -v 查看版本是否是刚刚安装的最新的7.5,如果不是,重启下电脑
转自:https://blog.csdn.net/zpinsist/article/details/116762793