CINT 是一个使用 C/C++ 语法的解释器,

时间:2022-10-18 17:10:39

       CINT 是一个使用 C/C++ 语法的解释器,CINT 兼容 95% 的 ANSI C 代码和85% 的 ANSI C++ 代码。这基本上意味着如果你的代码没有使用太过于专业的 C/C++ 语法,CINT 都能够正确的解析,诸如类、虚函数、运算符重载、继承、指针、数组等等。CINT 甚至支持模板。CINT 所不支持的 C/C++ 语言特性已被列在 Limitions。

一、构成

CINT 已被移植到多种平台下,当前的最新版本是 5.18.00,在 Windows 平台下,CINT 由以下四部分组成:

解释器 cint.exe

    它接受扩展名为 .c、.cpp、.cxx 等 C/C++ 的源代码,并将其解释执行。

库文件 libcint.dll

    它提供了 cint 的运行时环境。

lib 编译器makecint.exe

    它将指定的 C/C++ 库编译为可由 CINT使用扩展库,虽然 CINT 本身不进行编译,但它为使用C/C++编译器创建了一个 makefile。

系统库 /include

    提供诸如 stdio.h、iostream.h、time.h 等标准的 C/C++ 库的头文件。

二、安装

首先到 CINT 网站上下载一个最新的安装包,安装包通常分为两种,一种是已经编译好的二进制文件,一种是未经过编译的源代码,我的建议是这两个包都进行下载,因为在二进制包中不包括系统库。对于得到的源代码,首先确定所使用的编译器,在安装包目录的 platform 子目录中找到你的编译器,如果没有找到,呵呵。在自己编译器对应的目录中,通常有一个 setup.bat 文件,使用它来设置相关的变量并进行编译。CINT 运行时必须的系统变量为 CINTSYSDIR,它应该被设置为包含上述 CINT 组成的目录,另外,为了使用方便,将 CINTSYSDIR 添加到系统的 PATH 中是个不错的选择。

三、功能

3.1、支持 K&R-C, ANSI-C, ANSI-C++ 

Cint 覆盖了80-90%的K&R-C、ANSI-C和C++语言特性。包括多继承、虚函数重载、操作符重载、默认参数、模板(这个猛)等等。 Cint的目标不是成为100%兼容ANSI/ISOC++语言的处理机,而是一个可移植的足以解析大部分标准C++的脚本环境。

3.2、可处理大规模C/C++源码 

Cint可以处理大规模的C/C++源码,这可不是所有C++解释器都能做到的。Cint可以快速加载入源文件并解析超过6万行的代码。

3.3、可与编译代码混合使用

基于速度和交互的需要,你可以混合使用编译代码和脚本代码。"makecint"工具可以把任何C/C++对象作为预编译库嵌入到脚本中去,预编译库可以 配置成动态链接库。脚本代码和预编译代码可以双向无缝调用。

3.4、动态C++

Cint是动态的。它可以从命令行处理C++声明,动态地定义/删除类和函数的声明、载入/卸载源文件和动态库,以及一个扩展的 RTTI机制,这些足以让你开发出不可思议的C++用法。

3.5、内置的Debugger和Class Browser

Cint有一个内置的debugger,可以用于调试复杂的C++执行流程。基于的文本Class Browser是Debugger功能的一部分

四、源码编译

    4.1、安装MinGW与Msys,并将其添加到环境路径PATH中,如:

MINGW_HOME = C:\MinGW

PATH=$PATH: ;%MINGW_HOME%;%MINGW_HOME%\bin;%MINGW_HOME%\msys\1.0;%MINGW_HOME%\msys\1.0\bin;

    4.2、设定msys的fstab(C:/MinGW/msys/1.0/etc/),在文件末加入如下语句,注意这里使用到了Dos8.3命名规则。可以参考如下语句实现:

char *TMP_SDK = "C:\\Program Files\\MicrosoftSDKs";

     TCHAR strLongPathName[256];

     MultiByteToWideChar(CP_ACP, 0, TMP_SDK, -1, strLongPathName,256); 

     TCHAR szShortPathName[MAX_PATH] = {0};

     GetShortPathNameW(strLongPathName,szShortPathName, MAX_PATH);

fstab:

c:/mingw        /mingw

c:/ActiveState/perl /perl

C:/Workspace/Interpreter/cint-5.18.00 /cint

C:/PROGRA~1/MID05A~1 /msvc8

C:/PROGRA~1/MI2578~1/Windows/v7.0A /psdk

    4.3、配制cint的configure文件

4.3.1、将 C:\cint\configure 函数config_msvc7中的一行

   CFLAGS="-G5 -MD-nologo -wd4996 -GX"

   修改为

   CFLAGS="-G5 -MT-nologo -wd4996 -GX"

4.3.2、将MANGLEPATHS="cygpath-m"注释,在最前面加上#

    4.4、从vs2005的控制台运行vcvarsall.bat设定:

Setting environment for using Microsoft Visual Studio 2005 x86tools.

然后在vs2005的命令窗口输入msys.bat运行msys.

    4.5在msys中设定变量:

export PATH=/msvc8/VC/bin:/msvc8/Common7/IDE:$PATH   

export INCLUDE=/psdk/include:/msvc8/VC/include   

export LIB=/psdk/lib:/msvc8/VC/lib

然后cd 到cint源码路径下,再输入:./configure,最后输入:make –j4就能生成cint的动态库


http://blog.csdn.net/wenrenhua08/article/details/40047835