TinyC(TCC) 获得 LibTcc.dll 的简单方法

长期从 CSDN 里 down 东西,获得支持, 可未曾为其添砖加瓦, 今天获知一个技巧性的东西,和大家共享。 ^_^

最近寻找可放在自己程序里的 C/C++ 脚本(所谓嵌入式脚本),CInt、Tcc 等等都试了个遍,最后看中这个两个。

特希望 Cint可用(虽然是日本人写的,丰田本田松下等等东东也为我们所用嘛,所以就不介意用人家的源代码啦),毕竟这东东是 C++ 的。 可不管怎么编译(MinGW中), 获得的 LibCint.dll 怎么 LoadLibrary 都是失败,官网发布的LibCint.dll也是一样的问题, 让人灰心。

退而求其次, Tcc 这么小,挺可人,说明、例子看起来使用都很简单,可惜只是 C99 的。
可找老半天,就找不到 LibTcc.dll. 只好自己编译啦。

方法一:
根据 《基于Tiny C compiler的c脚本混合编程方法》,在 MinGW 中编译获得:
gcc -O2 -shared -Wall -Wl,--export-all-symbols -mpreferred-stack-boundary=2 -march=i386 -falign-functions=0 -fno-strict-aliasing -DTCC_TARGET_PE -DLIBTCC -o libtcc.dll tcc.c

好,该Dll 用 libtcc_test.c 测试通过。

方法二——本帖要说的简单方法:
灵机一动, TCC 号称最小编译器,但也是编译器嘛,所以直接用 TCC来编译自己获得:
tcc -shared -rdynamic -o libtcc.dll tcc.c

注意参数, 参数的说明,可参见 tcc.c 源程序本身。
哈哈,用 libtcc_test.c 测试,一样OK。

此法真是简单方便呀, 特别是对类似我这种长期在Win下编程的人。。。 说不定还能玩出其他花样。。。


cint性能比php还差很多....
tcc要好很多.但有很多BUG
其实C/C++的设计并不太适合用做脚本.选它们做脚本还不如用专门的脚本语言.像lua/javascript这些..
另外,如果真要用C/C++脚本.建议用ch.这玩意是商业软件.质量比较好.而且有免费版可以用.




你可能感兴趣的:(TinyC(TCC) 获得 LibTcc.dll 的简单方法)