怎么打开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程序也值得关注。