怎麼打開tc2編譯
拷貝一些給你,一般編譯器要注意的就是include目錄和lib目錄,還有就是編譯器調用的tcc,tlink之類的要在路徑內。不過簡單的菜單還是學一下吧,學編程還是需要一些英語的。
⒈首先要確保名為turboc.CFG的文件與TCC.EXE位於同一
目錄下如同在C:\TC目錄下。turboc.CFG的全部內容是
-IC:\TC\INCLUDE
-LC:\TC\LIB
它的作用是告訴TCC.EXE,.h文件和.lib文件在哪裡。
⒉最簡單的情形——當只需要編譯連接一個C源文件
設含主函數main()的文件名為mfile.c(下同)
則用以下命令之一可使編譯、連接"一步到位":
① tcc -f87 mfile.c <回車>
② tcc mfile.c <回車>
③ tcc mfile <回車>
命令①的效果優於命令②③因為 -f87 啟動了協處理器
從而使最終得到的可執行文件mfile.exe代碼短,速度快
命令②③的效果是用軟體模擬協處理器的8087指令代碼
既長速度且慢。當然如果機器上沒有協處理器就只能采
用命令②或③了。若源文件的擴展名是c,則只須輸入文
件的主名,小數點和'c'一並省略,故命令②③效果相同
【注】如果C源文件的擴展名不是c,則又分兩種情況:
若無擴展名(例如:僅有主名mfile)則編譯連接命令應為
tcc -f87 mfile. <回車>
別忘了末尾那個小數點!
若有擴展名(例如:mfile.cpp)則編譯連接命令應為
tcc -f87 mfile.cpp <回車>
⒊較復雜的情形——數個C源文件編譯後連接為一個程序
設除了源文件mfile.c外,還有1.sub和2.fun兩個源文件
則此時"一步到位"的既編譯又連接的命令如下:
tcc [-f87] mfile[.c] 1.sub 2.fun <回車>
以上含方括弧[]的項表示可選擇項(下同)。該命令的效
果是順序編譯這些C源文件因而先後生成以下目標文件
mfile.obj,1.obj,2.obj 隨後連接並生成 mfile.exe
換言之以上命令的效果等價於下面所列命令序列的效果
tcc -c mfile[.c] <回車>
tcc -c 1.sub <回車>
tcc -c 2.fun <回車>
tcc [-f87] mfile.obj 1.obj 2.obj <回車>
應當指出:-f87 開關對於編譯不起作用,但在連接階段
將引導連接器TLINK.EXE與庫文件 C:\TC\LIB\FP87.LIB
連接而不是預設時的模擬庫文件 C:\TC\LIB\EMU.LIB。
⒋更復雜的情形——C主文件和匯編模塊連接為一個程序
設除源文件mfile.c外,還有匯編模塊sub.asm和fun.asm
此時"一步到位"的既編譯、匯編又連接的命令如下:
tcc [-f87] -B mfile[.c] sub.asm fun.asm <回車>
以上命令的效果等價於下面所列命令序列的效果:
tcc -c mfile[.c] <回車>
tasm -Mx sub[.asm] <回車>
tasm -Mx fun[.asm] <回車>
tcc [-f87] mfile.obj sub.obj fun.obj <回車>
⒌內存模式——Tiny,Small,Compact,Medium,Lagre,Huge
對應的開關是 -mt, -ms(預設), -mc, -mm, -ml, -mh
注意該開關對於編譯和對於連接都是有意義的。例如:
tcc -ml mfile[.c] <回車>
等價於這樣2條命令:
① tcc -ml -c mfile[.c] <回車>
② tcc -ml mfile.obj <回車>
命令①中的 -ml 告訴編譯器:代碼和數據都是"遠"的。
命令②中的 -ml 告訴連接器:連接MATHL.LIB和CL.LIB
⒍混合模式編程。例如:總體上是SMALL模式,但希望調用
按LARGE模式編寫的函數。這是可以做到的,關鍵在函數
聲明語句要強調代碼和數據的 far 屬性。 有這樣一個
具體例子。在MS-Fortran4.0的庫LLIBFR7.LIB中有個名
為CIXTOMX.OBJ的模塊,其中定義了4個"遠"函數。用C
語言編程調用這4個函數的關鍵是正確的函數原型聲明
extern void far fmsbintoieee(float far*,float far*);
extern void far dmsbintoieee(double far*,double far*);
extern void far fieeetomsbin(float far*,float far*);
extern void far dieeetomsbin(double far*,double far*);
這樣聲明後,即使用 -ms 進行編譯連接也能正常運行。
完整的程序見 D:\FOR4.0\ 目錄下的
MS.C,CIXTOMX.OBJ,IXTOMX.OBJ,MS.EXE,ML.C,ML.EXE。
⒎連接階段如何用TLINK.EXE完成。對於
tcc -f87 mfile.obj sub.obj fun.obj <回車>
在預設的SMALL模式下也可以用以下命令實現連接:
TLINK c0S mfile sub fun,mfile,nul,maths fp87 cs <回車>
同理對於
tcc -ml mfile.obj sub.obj fun.obj <回車>
則相當於執行下列命令:
TLINK c0L mfile sub fun,mfile,nul,maths emu cs <回車>
其中啟動代碼即C的初始化程序C0S.OBJ或C0L.OBJ可以
在C:\TC\LIB\下找到,它們的源程序在C:\TC\STARTUP\
目錄下——該目錄中的MAIN.C程序也值得關注。