当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

TCC4Java

TinyCC的Java绑定版本
授权协议 Apache
开发语言 Java C/C++
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 长孙文栋
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

TCC4Java是TinyCC(也叫做TCC,一个神奇的C编译器)的Java绑定,让Java支持使用C作为脚本语言。

TCC4Java支持以下操作系统:

     Windows x86/x64
     Linux x86/x64/arm
     Mac OS X
     Debian kFreeBSD x86/x64
     FreeBSD x86/x64
     NetBSD x86/x64
     DragonFlyBSD x86/x64

在以下系统中测试过:

     Windows XP SP3 x86
     Windows 7 SP1 x86
     Ubuntu 12.04 x86/x64
     Debian Wheezy Raspbian 2014-01-07
     Mac OS X 10.7
     Debian kFreeBSD 7.5.0 x86/x64
     FreeBSD 9.0 x86/x64 (The FreeBSD based os such as GhostBSD, PC-BSD, ArchBSD, MidnightBSD are also supported)
     NetBSD 6.1.4 x86/x64
     DragonFlyBSD 3.6.2 x86/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.

  • TCC4Java是TinyCC(也叫做TCC,一个神奇的C编译器)的Java绑定,让Java支持使用C作为脚本语言。 TCC4Java支持以下操作系统: Windows x86/x64 Linux x86/x64/arm Mac OS X Debian kFreeBSD x86/x64 FreeBSD x86/x64 NetBSD x86/x64 DragonFlyBSD x86/x64 在以下系

  • 1.2.x 版本不向下兼容1.1.x,主要在声明tcc服务方法的注解有改变。1.2.x不同于1.1.x主要的地方在于发布服务时不再强制要求服务方法参数必须有TransactionContext参数,从而减少对业务代码的侵入。 Try: 尝试执行业务 完成所有业务检查(一致性) 预留必须业务资源(准隔离性) Confirm: 确认执行业务 真正执行业务 不作任何业务检查 只使用Try阶段预留的业务资

  • 参考:https://github.com/changmingxie/tcc-transaction

 相关资料
  • 首先我得到的错误是android许可证状态未知。所以我重新安装。他们抛出了两个错误,如下图所示。那么我该如何去修复它。

  • 我正在使用Windows 10下的Android Studio来运行Flitter项目,但是我有一个警告,我想修复: 我已经尝试了Stackoverflow/Git上公开的多个解决方案,但没有一个有效。 这里是我的项目设置: 这是我的颤振医生: 你能提供帮助吗?

  • 我使用VSCode作为我的IDE。(没有Android Studio)。当我执行颤振医生时,我得到错误“无法确定捆绑Java版本”。这会影响什么吗?如果会,我该如何修复它?(我已经尝试修复环境变量中的路径。)

  • 我希望能够向用户公开一个表示XML文件的对象。这可以用许多库(xmlBeans、JAXB…)来完成,并且一切都很好,直到我必须支持该XML文件的不同版本(不断演变的模式问题)以实现向后兼容性。 我希望这对于我的用户来说是完全透明的,这意味着是我的系统需要决定在某个时间点需要使用哪个版本的XML文件。 下面是我想要实现的一个简短的伪代码: 版本独立对象-这是当时在系统上找到的XML文件的对象表示(可

  • 问题内容: 我需要绑定所有箭头键以执行相同的功能,但是每次获取按下哪个键时。目前我只有通过以下方式按下向右箭头键时才有 但是我需要这样的东西 问题答案: 您要问的实际上是违反直觉的,并且违背了键绑定API的设计。 目的是为每个按键提供单个工作单元。在我看来,这建议您应为每个箭头键分别执行操作。 它使您更容易遵循逻辑,进行更改,根据需要规避操作。 但是我是谁呢? 如果看不到它,一种简单的方法就是为每

  • 问题内容: 我在寻找OpenCV Java绑定,所有引用都指向处理库。我知道处理是Java,但是没有独立的Java库吗?还是应该只使用处理库? 问题答案: 我刚刚发现了这个,OpenCV的java包装器:https : //github.com/bytedeco/javacv 未经测试,但我希望您对此有意见。

  • 问题内容: 您正在使用什么将XML绑定到Java?JAXB,Castor和XMLBeans是一些可用的选择。我所看到的比较都是三到四年了。我愿意接受其他建议。编组/解组性能和易用性特别受关注。 澄清:我不仅要看您使用什么框架,还要看您使用一个框架的理由。 问题答案: JiBX。以前我使用Castor XML,但事实证明JiBX明显更好,特别是在性能方面(从Castor XML到JiBX的一些应用程

  • 起初我是一个初学者 我看过很多教程,读过很多例子,甚至试图从JLS来理解这个主题,但我仍然有一些困惑或误解。 让我给你看我看不懂的问题。