CINT 是乙個使用 C C 語法的直譯器,

2021-07-24 04:41:11 字數 2572 閱讀 1342

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++ 庫的標頭檔案。

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] = ;

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

乙個簡單的c c 程式

1.int main 備註 1 ansi c c 規定,main方法的返回值型別為int 2 return 0代表main成功執行,return非零值表示main執行失敗。如果是return 0,那麼可以省略,os呼叫main時自動會在最後一句後面插入return 0.2.main函式的定義 int...

使用docker部署乙個簡單的c c 程式的方法

一 首先建立乙個 hello world.cpp 檔案 程式 如下 include using namespace std int main 例如我是在我的home路徑下建立乙個dockerfile hello world目錄,裡面新建乙個hello world.cpp原始檔。二 編寫dockerf...

由解乙個bug想到的

最近花費了很久時間去解決乙個bug,在我手裡有乙個月了。今天同事出手幫忙解決掉了,分外感激。這個bug如果按照我的思路,再過乙個月也不一定能夠解決掉。三人行,必有我師。同事身上有許多值得我學習的地方。比如,我是從程式碼執行機制方面找尋產生bug的原因,可是程式碼數量龐大。很難發現其中的某一處問題所在...