Build QuickJS on Windows, and prebuilt binary releases.
Install MSYS2
If build 64-bit QuickJS with MINGW64
, install x86_64-toolchain
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-make
echo "#! /bin/sh" > /mingw64/bin/make
echo "\"mingw32-make\" \"\$@\"" >> /mingw64/bin/make
If build 32-bit QuickJS with MINGW32
, install i686-toolchain
pacman -S mingw-w64-i686-gcc mingw-w64-i686-make
echo "#! /bin/sh" > /mingw32/bin/make
echo "\"mingw32-make\" \"\$@\"" >> /mingw32/bin/make
git clone https://github.com/mengmo/QuickJS-Windows-Build.git
cd QuickJS-Windows-Build
make LDEXPORT="-static -s" LDEXTRAS="-static -s"
zip -9 -r quickjs-$(cat version)-win$(echo ${MSYSTEM:0-2}).zip qjs.exe run-test262.exe
mkdir ./bin
mv qjs.exe qjsc.exe run-test262.exe ./bin
mkdir -p ./lib/quickjs
strip -g libquickjs.a
mv libquickjs.a libquickjs.lto.a ./lib/quickjs
mkdir -p ./include/quickjs
cp -p quickjs.h quickjs-libc.h ./include/quickjs
zip -9 -r quickjs-$(cat version)-win$(echo ${MSYSTEM:0-2})-all.zip ./bin ./doc ./examples ./include ./lib Changelog readme.txt TODO VERSION
quickjs: Thin Python wrapper of https://bellard.org/quickjs/
jsvu: install recent versions of various JavaScript engines without having to compile them from source.
A method to generate libquickjs.dll
, use at your own risk.
- Generating
libquickjs.dll
withlibquickjs.a
gcc -shared -o libquickjs.dll -static -s -Wl,--whole-archive libquickjs.a -lm -Wl,--no-whole-archive
- Generating
libquickjs.dll
withlibquickjs.lto.a
gcc -shared -o libquickjs.dll -static -s -Wl,--whole-archive libquickjs.lto.a -lm -Wl,--no-whole-archive
- Loading
libquickjs.dll
withctypes
from Python
python
from ctypes import *
print(windll.libquickjs)
exit()
- A method to get a list of QuickJS Javascript Engine API
objdump -p libquickjs.dll > libquickjs_api_list.txt
QuickJS Javascript Engine API list
located in [Ordinal/Name Pointer] Table
Check quickjs.h
to see what these APIs were defined for
Tips: (I think there is no need to do this any more)
When trying to load libquickjs.dll
outside MSYS2
/MINGW64
/MINGW32
if encountered OSError: [Error 126] The specified module could not be found.
try to find dlls that libquickjs.dll
depends on with
objdump -p libquickjs.dll | grep -E .dll
objdump -p libquickjs.dll | findstr /c:.dll