TCC4Java 是TCC的一個 java 綁定。利用 TCC4Java,你可以使用 TCC 作為動態代碼生成的一個后端。
什么是 TCC?
TinyCC(又名TCC)是一個小而超快速的C編譯器。不像其他的C編譯器, 它是為了自我依靠:你不需要一個外部匯編器或連接器。
TinyCC主頁:http://bellard.org/tcc/.
What is TCC4Java?
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
- Supported jdk:
jdk 1.5 or later
- TCC4Java is released under Apache License 2.0.
- 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!