[QJSxmake]非常简单地在Windows下编译QuickJS!
- 电脑硬件
- 2025-07-22 22:39:02

文章目录 前言准备C编译器xmake编译包 工程准备修改版本号第一遍编译第二遍编译效果 前言
quickjs是个很厉害的东西啊,我一直想编译一下的,奈何一直没成功。现在找了点时间成功编译了,写篇文章记录一下。当前版本:2024-1-13 应该没人写过教程,是目前最新的了。
准备 C编译器QuickJS是用纯C,C89写的,这意味着你需要的C编译器要求很低。最小的tcc,10MB也是可以的,但我不建议(具体原因一会说),建议使用msvc或gcc。我使用的是gcc。 Windows下gcc分为msys2和mingw,msys2相对重量级一点,我没有装,我用的是mingw。当然,如果你装了msys2也可以,不过你也可以参考这篇文章,同时,这篇文章也讲了支持从js加载dll的方法。
xmakexmake是一个轻量化的,基于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)
[QJSxmake]非常简单地在Windows下编译QuickJS!由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“[QJSxmake]非常简单地在Windows下编译QuickJS!”