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的原因,可是程式碼數量龐大。很難發現其中的某一處問題所在...