标题:请教一个问题(急)
只看楼主
sgfxj
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-5-29
 问题点数:0 回复次数:18 
请教一个问题(急)
请教一个问题
在Turbo c 中Too much code define in file 的问题如何处理
谢谢
搜索更多相关主题的帖子: Turbo Too define file 
2006-05-29 16:03
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
得分:0 
看头文件

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-29 16:14
sgfxj
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-5-29
得分:0 
什么意思
我不明白 我的代码是比较长 估计超过了64K
但有什么方法可以编译大于64k的程序呢
我分了十几个子函数来写的 如何编译通过

谢谢
2006-05-29 16:25
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
得分:0 

自己做个头文件,把函数跟宏定义都放进去,
然后在程序中调用,这样试试?


对不礼貌的女生收钱......
2006-05-29 16:29
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
得分:0 

他非要用英语,还表达错了。

3楼的问题,你仔细看看编译器的编译设置

内存模式里有6种,你自己去选吧


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-29 16:33
sgfxj
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-5-29
得分:0 
我就是这样定义的
我定义了一 define.h的 文件
但是不行啊
你有联系方法吗
我可以在QQ上请教一下
2006-05-29 16:35
sgfxj
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-5-29
得分:0 
我选了的是特大存储模式
但 代码超过了64K啊

有没有其他的解决方式
2006-05-29 16:37
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
得分:0 
你没法组织到一起去? 每个子函数起个名字,例如xxx.c

在主程序中 #include "xxx.c" 都可以
或者你直接创建一个工程,都放进去就OK啊

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-29 16:38
sgfxj
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-5-29
得分:0 

如何写一个自己的LIB
来减少 代码量

2006-05-29 16:39
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
得分:0 
给你找了一个,现成的,不是我写的

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个!


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-29 16:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-68280-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.939015 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved