TCC4Java是TinyCC(也叫做TCC,一个神奇的C编译器)的Java绑定,让Java支持使用C作为脚本语言。
TCC4Java支持以下操作系统:
Windowsx86/x64 Linuxx86/x64/arm MacOSX DebiankFreeBSDx86/x64 FreeBSDx86/x64 NetBSDx86/x64 DragonFlyBSDx86/x64
在以下系统中测试过:
WindowsXPSP3x86 Windows7SP1x86 Ubuntu12.04x86/x64 DebianWheezyRaspbian2014-01-07 MacOSX10.7 DebiankFreeBSD7.5.0x86/x64 FreeBSD9.0x86/x64(TheFreeBSDbasedossuchasGhostBSD,PC-BSD,ArchBSD,MidnightBSDarealsosupported) NetBSD6.1.4x86/x64 DragonFlyBSD3.6.2x86/x64简单的例子:
import java.io.IOException;import cn.com.tcc.State;import cn.com.tcc.TCC;public class HelloTCC {public static void main(String[] args) throws IOException {TCC.init("./tcc/");State state = new State();state.compileString("int sum(int a, int b) {return a + b;}\n"+ "int main(int argc, char* argv[]) {printf(\"sum(%d, %d) = %d\\n\", atoi(argv[1]), atoi(argv[2]), sum(atoi(argv[1]), atoi(argv[2]))); return 0;}");state.run("", 2, 3);state.delete();}}TCC.init()初始化TCC,参数为包含TCC动态链接库和头文件的目录。
state.compileString()接受一个包含C程序的字符串作为参数,编译它,state.run()运行编译后的程序,并传递参数2和3用于计算它们的和。程序输出为:
sum(2,3)=5
更多例子请查看https://github.com/wangzhengbo/TCC4Java中的examples和test.
评论