在Turbo c 中Too much code define in file 的问题如何处理
谢谢
如何写一个自己的LIB
来减少 代码量
Tc生成lib的方法:
● 扩展库与自建LIB库
使用扩展库
TC所带的库在有的情况下是无法满足功能要求的,自己写一个太麻烦,找到了一个LIB库又怕不会用。在WIN-TC中,对于使用外部的扩展库(第三方LIB)提供了一个方便的解决方法:
首先要确定你的LIB库是FOR TC版本的而不是FOR VC或是其它的。如果确定是FOR TC的版本的话就把你的首标文件(或称头文件),就是扩展名为*.h的文件拷贝到WIN-TC的include目录里,然后把相应名称的*.lib文件拷贝到lib目录,然后再运行WIN-TC时选择“编译配置”菜单项,你会看到扩展库信息栏目里有你的LIB库文件名在上面了,但是没有打钩。然后你把它钩选后再“确定”保存,以后的编译程序时就自动链接该扩展库了。
自建立LIB库
将自己的代码编译成LIB库的格式有利与保护自己的代码版权。如何来生成自己的LIB库呢?请按照下面的方法:
STEP 1——生成目标代码(OBJ)
建立mylib的代码文件
/********************* mylib.c *********************/
void myfun()
{
printf("
myfun() in mylib.lib
");
}
然后保存为WIN-TC目录下的mylib.c文件
然后到菜单项:运行->编译设置 看看“产生 OBJ 文件”是否已选择,若未选择则选择之。
然后回到主界面,点“编译链接”按钮(F9)
STEP 2——建立LIB库(LIB)
将WIN-TC目录下生成的mylib.obj文件拷贝至WIN-TC的BIN目录,然后在该目录下用记事本建立一批处理文件makelib.bat,内容如下:
Tlib mylib.lib +mylib.obj
然后双击运行,则在BIN目录下生成了mylib.lib库文件。至此,你会觉得胜利开始向你招手了,不过你必须按部就班完成剩下的任务才能达到使用自建LIB库的最终目标。
STEP 3——建立首标文件(*.h)并使用LIB库
将BIN目录下的mylib.lib拷贝至WIN-TC的lib目录。
然后打开WIN-TC的菜单:运行->编译配置
你会看到“扩展库信息”列表里面有你生成的mylib.lib了,不过没有打钩,将它单击钩选,以后编译时就可以自动链接该库了。
剩下的时就是建立首标文件了,用WIN-TC新建一文件,里面只需要写一句话:
void myfun();
如果担心反复引用的话,可以加上#ifndef #define #endif的结构,例如将以上结构用__MYLIB1来避免反复引用写为:
#ifndef __MYLIB
#define __MYLIB
void myfun();
#endif
然后“保存”,在弹出的保存对话框里面的保存类型里选择最下面的头文件(*.h),保存位置为WIN-TC的INCLUDE目录,文件名要与建立的库一致既为mylib。如果顺利的话,在INCLUDE目录下将可以看到一个mylib.h文件。
至此,你已经按照步骤建立了LIB库并完成了WIN-TC的相关设置,接下来将检验自己的劳动成果了。
STEP 4——测试自己的LIB库
新建测试文件如下:
#include "mylib.h" /*包含自定义库的头文件*/
main()
{myfun();
getch();
}
激动人心的时刻到了(如果你是第一次做自己的库会有这种感觉的),使用用Ctrl+F9编译运行之,如果成功的话,你将会看到下面的屏幕输出:
myfun() in mylib.lib
如果出现错误信息的话,你再检查一下你自己是否是严格按照步骤生成并使用的LIB库
需要注意一下:由于DOS路径长度的限制,同时使用(钩选)的根据路径长短最多可以同时支持10个!
Tc生成lib的方法:
● 扩展库与自建LIB库
使用扩展库
TC所带的库在有的情况下是无法满足功能要求的,自己写一个太麻烦,找到了一个LIB库又怕不会用。在WIN-TC中,对于使用外部的扩展库(第三方LIB)提供了一个方便的解决方法:
首先要确定你的LIB库是FOR TC版本的而不是FOR VC或是其它的。如果确定是FOR TC的版本的话就把你的首标文件(或称头文件),就是扩展名为*.h的文件拷贝到WIN-TC的include目录里,然后把相应名称的*.lib文件拷贝到lib目录,然后再运行WIN-TC时选择“编译配置”菜单项,你会看到扩展库信息栏目里有你的LIB库文件名在上面了,但是没有打钩。然后你把它钩选后再“确定”保存,以后的编译程序时就自动链接该扩展库了。
自建立LIB库
将自己的代码编译成LIB库的格式有利与保护自己的代码版权。如何来生成自己的LIB库呢?请按照下面的方法:
STEP 1——生成目标代码(OBJ)
建立mylib的代码文件
/********************* mylib.c *********************/
void myfun()
{
printf("
myfun() in mylib.lib
");
}
然后保存为WIN-TC目录下的mylib.c文件
然后到菜单项:运行->编译设置 看看“产生 OBJ 文件”是否已选择,若未选择则选择之。
然后回到主界面,点“编译链接”按钮(F9)
STEP 2——建立LIB库(LIB)
将WIN-TC目录下生成的mylib.obj文件拷贝至WIN-TC的BIN目录,然后在该目录下用记事本建立一批处理文件makelib.bat,内容如下:
Tlib mylib.lib +mylib.obj
然后双击运行,则在BIN目录下生成了mylib.lib库文件。至此,你会觉得胜利开始向你招手了,不过你必须按部就班完成剩下的任务才能达到使用自建LIB库的最终目标。
STEP 3——建立首标文件(*.h)并使用LIB库
将BIN目录下的mylib.lib拷贝至WIN-TC的lib目录。
然后打开WIN-TC的菜单:运行->编译配置
你会看到“扩展库信息”列表里面有你生成的mylib.lib了,不过没有打钩,将它单击钩选,以后编译时就可以自动链接该库了。
剩下的时就是建立首标文件了,用WIN-TC新建一文件,里面只需要写一句话:
void myfun();
如果担心反复引用的话,可以加上#ifndef #define #endif的结构,例如将以上结构用__MYLIB1来避免反复引用写为:
#ifndef __MYLIB
#define __MYLIB
void myfun();
#endif
然后“保存”,在弹出的保存对话框里面的保存类型里选择最下面的头文件(*.h),保存位置为WIN-TC的INCLUDE目录,文件名要与建立的库一致既为mylib。如果顺利的话,在INCLUDE目录下将可以看到一个mylib.h文件。
至此,你已经按照步骤建立了LIB库并完成了WIN-TC的相关设置,接下来将检验自己的劳动成果了。
STEP 4——测试自己的LIB库
新建测试文件如下:
#include "mylib.h" /*包含自定义库的头文件*/
main()
{myfun();
getch();
}
激动人心的时刻到了(如果你是第一次做自己的库会有这种感觉的),使用用Ctrl+F9编译运行之,如果成功的话,你将会看到下面的屏幕输出:
myfun() in mylib.lib
如果出现错误信息的话,你再检查一下你自己是否是严格按照步骤生成并使用的LIB库
需要注意一下:由于DOS路径长度的限制,同时使用(钩选)的根据路径长短最多可以同时支持10个!