Windows 搭建 Jekyll 环境。 bundle install
的时候, libv8
和 therubyracer
会失败,主要是工程配置和源代码 Windows 平台的兼容性么有做好。
在基于源码的编译构建过程中,代码是临时释放的,mk 配置也是临时释放的,对于编译不过的地方,即使修改了,也会被 bundle 覆盖回滚。后来把这些改动过的代码和配置都拷贝出来,用脚本不停的尝试写入替换对应的文件,最终编译链接成功。
安装 ruby & gem
从 https://rubyinstaller.org/downloads/ 下载,Ruby+Devkit 2.5.8-1 (x64) rubyinstaller-devkit-2.5.8-1-x64.exe。
因为 github-pages depends on ruby (>= 2.2, < 2.6) x64-mingw32,安装 MSYS2,选择 3 - MSYS2 and MINGW development toolchain
,安装完成要选择“运行”。
安装 bundler
工程 bundle install
libv8 构建不成功,therubyracer 也构建不成功。网上的办法都行不通。必须先装好 Python2 环境,如果是 Python3,要改环境变量 Path,还有 PYTHONPATH & PYTHONHOME(也可能没有),否则 Python 报错:No module named site
。
最终方案:
先构建一次,把所有影响构建的源代码和工程配置(mk 文件)都拷贝出来,改动点具体见 python 代码。platform-win32.cc 里面的 localtime_s
和 include/time.h 里面的冲突,改个新名字,等等。
然后写个脚本(libv8.gem.py),不停的尝试写入替换这些文件;同时开启构建,一旦构建系统创建 / 释放 / 修改了这几个文件,马上替换掉,最终就可以顺利完成构建了。
建议用 Everything 把编译不过的问题文件找出来。
先把 libv8 编译过,再把 therubyracer 编译过
参考资料快照