TinyCC的Java綁定版本:TCC4Java

jopen 10年前發布 | 20K 次閱讀 TCC4Java Java開發

TCC4Java 是TCC的一個 java 綁定。利用 TCC4Java,你可以使用 TCC 作為動態代碼生成的一個后端。

什么是 TCC?
  TinyCC(又名TCC)是一個小而超快速的C編譯器。不像其他的C編譯器, 它是為了自我依靠:你不需要一個外部匯編器或連接器。
   TinyCC主頁:http://bellard.org/tcc/.

What is TCC4Java?

  1. Supported os: Windows x86/x64 Linux x86/x64/arm Mac OS X Debian kFreeBSD x86/x64 FreeBSD x86/x64 NetBSD x86/x64 DragonFlyBSD x86/x64 Solaris x86

    TCC4Java has been tested under the following os: 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 Solaris 10/11 x86

  2. Supported jdk: jdk 1.5 or later
  3. TCC4Java is released under Apache License 2.0.
  4. TCC4Java's homepage is https://github.com/wangzhengbo/TCC4Java, you can download the compiled jar from https://sourceforge.net/projects/tcc4java.</pre>


    簡單的例子:

    </div> </div>
    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(); } }</pre>

TCC.init()初始化TCC,參數為包含TCC動態鏈接庫和頭文件的目錄。

state.compileString()接受一個包含C程序的字符串作為參數,編譯它,state.run()運行編譯后的程序,并傳遞參數2和3用于計算它們的和。程序輸出為:

sum(2, 3) = 5

更多例子請查看https://github.com/wangzhengbo/TCC4Java中的examples和test.

項目主頁:http://www.baiduhome.net/lib/view/home/1403444444499

</span>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!