兴安盟seo,网站品牌词优化怎么做,帝国企业网站源码,wordpress判断ios或安卓文章目录 前言准备C编译器xmake编译包 工程准备修改版本号第一遍编译第二遍编译效果 前言
quickjs是个很厉害的东西啊#xff0c;我一直想编译一下的#xff0c;奈何一直没成功。现在找了点时间成功编译了#xff0c;写篇文章记录一下。当前版本#xff1a;2024-1-13 应该… 文章目录 前言准备C编译器xmake编译包 工程准备修改版本号第一遍编译第二遍编译效果 前言
quickjs是个很厉害的东西啊我一直想编译一下的奈何一直没成功。现在找了点时间成功编译了写篇文章记录一下。当前版本2024-1-13 应该没人写过教程是目前最新的了。
准备
C编译器
QuickJS是用纯CC89写的这意味着你需要的C编译器要求很低。最小的tcc10MB也是可以的但我不建议具体原因一会说建议使用msvc或gcc。我使用的是gcc。 Windows下gcc分为msys2和mingwmsys2相对重量级一点我没有装我用的是mingw。当然如果你装了msys2也可以不过你也可以参考这篇文章同时这篇文章也讲了支持从js加载dll的方法。
xmake
xmake是一个轻量化的基于lua的C/C构建环境使用起来非常方便。官网是xmake.io配置很方便官方提供了傻瓜式的安装包。它支持msvc、gcc/mingw、clang等编译器不过不支持tcc所以如果你只装了tcc就没法用xmake编译了。
编译包
xmake是用xmake.lua文件控制编译选项的而这个玩意正好有人帮我们写好了进入上面这个仓库你可以选择把整个zip下下来也可以选择只下载xmake.lua文件反正我们只需要这个。
QuickJS的源代码在这找到QuickJS source code: quickjs-XXXX-XX-XX.tar.xz点击链接下载。 啊当然如果你只想玩玩不是一定要编译的话再下面有个Binary releases你一定不会看不见吧。。
工程准备
新建文件夹把上面下载的quickjs-xmake解压进去。如果你下的是单个xmake.lua文件也行直接放进去就行了但要记得新建一个叫quickjs的文件夹。 文件目录如下
Project|--quickjs| |--空|--xmake.lua|--repl.c 【请删除这个文件】删除repl.c是因为这是旧版本的不适于现在的版本。 然后把quickjs-XXXX-XX-XX.tar.xz解压进去注意这是双层压缩包。
此时在此目录里可以用xmake f -p mingw切换mingw/gcc环境Windows下默认msvc
修改版本号
这步是可选的但建议做一下。 quickjs文件夹里面有个VERSION文件包含版本号当然压缩包文件名里也有复制一下打开xmake.lua修改第5行把
add_defines(CONFIG_VERSION\2020-11-08\)改成
add_defines(CONFIG_VERSION\2024-01-13\)注意不要手欠不小心多干掉个\或了。。
第一遍编译
编译需要两遍第一次是编译“编译器”qjsc.exe即把js转换成C甚至是exe的程序然后用它进行第二次把repl.js编译成repl.c再编译出qjs.exe这是类似python解释器环境的东西可以用来执行代码。 在Project文件夹打开cmd/powershell窗口输入xmake如果出现“无法识别的命令”之类的话别找我先配置好xmake再说吧。。正常情况应该是这样 没有关系只有qjs.exe没有编译出来qjsc.exe已经有了。 我们进入build/mingw/x86_64/release目录里看到qjsc.exe存在就可以进入下一步了。
第二遍编译
在quickjs文件夹中找到repl.js拷到刚才的release目录中打开进行一些小修改去掉或用//注释掉第25行的
use strip;
就是变成下面这样
//use strip;然后在当前目录执行./qjsc -c repl.js应该不会报错然后这个文件夹里应该会多出来一个out.c的文件。
把这个文件拷回Project文件夹改名为repl.c就是之前删掉那个文件还记得么重新执行xmake。 这回就成功了。回到release文件夹你就可以用qjs.exe来执行JavaScript代码了
效果
顺带提一下这玩意只能搞UTF-8编码而中文Windows的cmd是GBK哦~
写完才发现还有人也做过教程也贴上来吧this