UltraEdit + Turbo C++ 配置 C
語(yǔ)言學(xué)習(xí)環(huán)境詳解
學(xué)過(guò) C 語(yǔ)言的朋友大概都知道
Turbo C
編譯器,,但它的編輯環(huán)境不夠人性化(一個(gè)煩人的全屏幕籃屏窗口),下面我給大家介紹一種方便的編輯編譯環(huán)境配置方法,。
一,、需要的工具
編輯工具: UltraEdit ,這里使用的是 UltraEdit-32
v13.10a+2
編譯器:TCC ,,這是 Turbo C++ 3.0
自帶的命令行編譯器,。
二、步驟
1)下載并安裝 UltraEdit ,。
2)將Turbo C++
3.0安裝到一空文件夾,,這里假設(shè)為:C:\TC(最好不要有空格),新建名為 TCWORK
的文件夾作為我們的工作目錄,,今后將在這里存放我們的源文件和生成可執(zhí)行文(如E:\TCWORK),,避免和
TC++
的文件混在一起。目錄結(jié)構(gòu)應(yīng)與下列類(lèi)似:
Turbo C++
|----INCLUDE
|----LIB
|----BIN
3)運(yùn)行
UltraEdit
,,單擊『高級(jí)』->『工具欄配置』(您的菜單可能和我的不一樣,,我用的是官方中文版),打開(kāi)『工具配置』對(duì)話(huà)框,,在『命令行』『工作目錄』『菜單項(xiàng)名稱(chēng)』里分別輸入:
『命令行』: C:\TC\BIN\TCC.EXE -IC:\TC\INCLUDE -LC:\TC\LIB -nE:\TCWORK
-w %f
『工作目錄』: C:\TC\BIN
『菜單項(xiàng)名稱(chēng)』:編譯(此項(xiàng)可任意)
并勾選『保存活動(dòng)文件』『輸出到列表窗口』『捕獲輸出』等選項(xiàng),,單擊『插入』插入一個(gè)菜單項(xiàng)。最終結(jié)果如頁(yè)面下圖:
配置解釋?zhuān)?br>
『工作目錄』是指『命令行』里設(shè)置的程序與目錄的相對(duì)父目錄,,即
TCC.EXE 以及目錄 INCLUDE ,、LIB 的父目錄。
『命令行』里的 TCC.EXE 是 TC 的命令行編譯器,,-I
是其編譯選項(xiàng),,指出 TCC.EXE
在編譯源文件時(shí)到哪里尋找頭文件,這里指定
INCLUDE 目錄,,同理 -L 指出庫(kù)文件目錄,,-n
指出輸出文件目錄(即在哪里輸出 .obj ,、.exe
等文件),-w 指出顯示警告信息,。%f 則是 UltraEdit
提供的參數(shù),,指代當(dāng)前的文件名(帶擴(kuò)展名),在運(yùn)行該菜單命令時(shí),,UltraEdit
會(huì)自動(dòng)將其以當(dāng)前的文件名取代,。
再添加一個(gè)菜單以運(yùn)行新生成的程序:
『命令行』: %n
『工作目錄』: E:\TCWORK
『菜單項(xiàng)名稱(chēng)』:運(yùn)行(此項(xiàng)可任意)
注意:不要勾選『捕獲輸出』
配置解釋?zhuān)?br>
%n
指代當(dāng)前的文件名(不帶擴(kuò)展名),單擊此菜單后,,實(shí)際上就是運(yùn)行生成的應(yīng)用程序,。
4)測(cè)試
在 UltraEdit 里新建一文件,以 Hello.c 保存到
d:\turboc2\WORK ,,輸入以下內(nèi)容:
#include
int main()
{
printf("Hello, World!\n");
return 0;
}
單擊『高級(jí)』->『編譯』編譯當(dāng)前文件,,沒(méi)有錯(cuò)誤后,單擊『高級(jí)』->『運(yùn)行』運(yùn)行生成的程序,。
上面的 Invalid
keyboard code specified
可以不用管,,懷疑是Bug
(5),為編譯和運(yùn)行菜單設(shè)置快捷?。?br>
點(diǎn)擊菜單:高級(jí)-配置,,再選中鍵映射這一欄,可以看到所有的菜單項(xiàng)對(duì)應(yīng)的快捷健,,當(dāng)然也包括我們剛才生成的兩個(gè)菜單,,如果覺(jué)得這兩個(gè)菜單的快捷鍵用得不爽的話(huà),可以自己設(shè)定,。更詳細(xì)的做法就不說(shuō)啦,。
附1 配置VC方法
編譯:
1,在命令行中填入:cl
%n%e
我們知道,,dos下的cl命令用來(lái)編譯源文件。后面的兩個(gè)參數(shù)%n%e表示要編
譯的源文件的文件名,。(注意每個(gè)字母必須是小寫(xiě)的,,以下同)
2,在工作目錄中填入:%p
3,,在菜單項(xiàng)目名中填寫(xiě)編譯,,這個(gè)名字就是我們要設(shè)置的編譯菜單項(xiàng)的名字。
4,,對(duì)于下面的幾個(gè)復(fù)選框,,選中輸出到列表框和捕獲輸出。
5,,點(diǎn)擊插入按鈕,,建立編譯菜單項(xiàng)
運(yùn)行:
1,,在命令行中填入:%n
2,在工作目錄中填入:%p
3,,在菜單項(xiàng)目名中填寫(xiě)運(yùn)行,,這個(gè)名字就是我們要設(shè)置的運(yùn)行菜單項(xiàng)的名字。
4,,對(duì)于下面的幾個(gè)復(fù)選框,,選中輸出到列表框和捕獲輸出。
5,,點(diǎn)擊插入按鈕,,建立運(yùn)行菜單項(xiàng)
點(diǎn)擊確定退出
這樣,當(dāng)寫(xiě)好源程序后,,點(diǎn)擊工具編譯和運(yùn)行菜單,,就可以編譯和運(yùn)行程序。最終生成.obj文件和.exe文件,。這樣的做法,,比起使用vc要生成一大堆文件,而且要為每一個(gè)程序建立一個(gè)文件夾,,是不是更加的方便呢,?
原理:說(shuō)了這么多,其實(shí)上面用到的是cl命令和utraledit-32提供的一些接口,。我們知道,,在dos下,可以用cl命令來(lái)編譯c/c++程序(當(dāng)然估計(jì)沒(méi)人有會(huì)真的這么做),。而utraledit-32提供了一個(gè)接口,,可以建立菜單項(xiàng),通過(guò)點(diǎn)擊菜單項(xiàng)來(lái)執(zhí)行dos下的命令,。需要考慮的是,,dos下的cl命令要求提供源文件的文件名作為參數(shù),這個(gè)參數(shù),,在utraledit-32用%n%e來(lái)代替,。當(dāng)然,也可以為%N%E,,但推薦使用小寫(xiě),,大小寫(xiě)的區(qū)別請(qǐng)看utraledit-32的幫助文檔。
附2 配置匯編MASM
★MASM版本:5.0,,在系FTP/pub/Develop/ASM/masm5.zip
假設(shè)MASM5安裝在G:\MASM
//推薦使用MASM5.0
★MASM6.11以上版本請(qǐng)copy一個(gè)link.exe到G:\MASM\BIN目錄
★Step1
運(yùn)行UltraEdit,,選 "高級(jí)Advance->配置Tool Configuration",
命令行Command Line填G:\MASM\BIN\MASM %f,%n,NUL,NUL
工作目錄Work Directory填%p,,
菜單項(xiàng)目名稱(chēng)Menu Item Name填MASM Compile
在DOS命令輸出Command Output中的輸出到列表方塊output to List Box和
捕捉輸出Capture Output打勾,,然后選插入Insert,。
★Step2
接著在命令行Command Line填G:\MASM\BIN\LINK %n.obj,,NUL,,
工作目錄Work Directory填%p,
菜單項(xiàng)目名稱(chēng)Menu Item Name填MASM Link,,
在DOS命令輸出Command Output中的輸出到列表方塊output to List Box和
捕捉輸出Capture Output打勾,,然后選插入Insert。
★Step3
接著在命令行Command Line填%p%n
工作目錄Work Directory填%p,,
菜單項(xiàng)目名稱(chēng)Menu Item Name填MASM Run,,
在DOS命令輸出Command Output中的輸出到列表方塊output to List Box和
捕捉輸出Capture Output打勾,然后選插入Insert,。
注意:%n,%p皆要小寫(xiě),大小寫(xiě)意義不同!!
調(diào)整一下三個(gè)命令的上下順序
測(cè)試:
選文件File,新建New,開(kāi)始編輯原始程序.程序如下:
NAME MY_PROGRAM ;程序模塊名
DATA SEGMENT ;數(shù)據(jù)段開(kāi)始
BUFFER1 DB 0,1,2,3,4,5,6,7,8,9
DB 0AH,0BH,0CH,0DH,0EH,0FH
BUFFER2 DB 10H DUP(0)
MESS DB 'HAVE DONE',13,10,'$'
DATA ENDS ;數(shù)據(jù)段結(jié)束
STACK SEGMENT PARA STACK ;堆棧段開(kāi)始
DB 100 DUP(?)
STACK ENDS ;堆棧段結(jié)束
CODE SEGMENT ;代碼段開(kāi)始
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX ;建立用戶(hù)數(shù)據(jù)段
MOV ES,AX
LEA |