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的動態庫