当前位置: 首页 > 工具软件 > QuickJS > 使用案例 >

quickjs比v8好用太多

李谦
2023-12-01

quickjs是bellard大神的作品,小巧(也就1-2M的样子)易用,非常方便将javascript转换为可执行程序或c,速度有可能比v8稍微差一点。

-r--r--r-- 1 user users 1552898 Aug 17 15:04 libquickjs.a
-r--r--r-- 1 user users 1169504 Aug 18 07:36 libquickjs.so
-r--r--r-- 1 user users 1163237 Aug 18 12:33 qjs.dll


-rwxr-xr-x 1 user users 1195360 Aug 17 15:04 qjs
-rwxr-xr-x 1 user users 1010408 Aug 17 15:04 qjsc
lrwxrwxrwx 1 user users       3 Aug 17 15:04 qjscalc -> qjs
-rwxrwxrwx 1 user users 1046016 Aug 18 12:33 qjsc.exe
-rwxrwxrwx 1 user users 1091072 Aug 18 12:33 qjs.exe

下面是一个简单的javascript例子:

/*demoJS.js*/

import * as std from 'std';

function demoJS(args) {
	if(args.length<2)
	{
		print("usage: name food\n");
		return;
	}
	var file = std.open('test_outfile.txt','w');
	var r="My name is " + args[0] + ". My favourite food is " + args[1] + ".";
	console.log(r);
	file.puts(r);
	file.close();

}
var args=scriptArgs;
args.shift();
demoJS(args)

/*end demoJS.js*/

在linux系统下:

(1)可以直接运行
qjs demoJS.js "John" "fish"
My name is John. My favourite food is fish.

(2)也可以编译为可执行文件:
qjsc -o demoJS demoJS.js

在windows系统下:

象linux一样可以直接运行,但直接编译有些问题,会报错:

Executable output is not supported for this target

但我们可以这样做:

编译成c语言:

qjsc -e -o demoJS.c demoJS.js

然后按照c语言正常编译:

gcc -o demoJS demoJS.c -O3 -lquickjs -pthread
 
 类似资料: