总结一些思考的问题!!!大家一起讨论!
感谢大家对于在下的LinkError一帖的积极讨论和指教,论坛的氛围很积极,我也将一些问题的总结与大家分享讨论,还望牛人积极参与意见。谢谢很多编写代码的初学者都是从单线程,单文件开始的。比如在一个文件中声明子函数,主函数,结构体等等,大家都调试过。
之后开始写多个文件链接,实现自己的库和函数包。这时问题就来了,以前老谭的书上似乎没有说过啊?于是就到处看一些别人的代码,借鉴,模仿,学习,最终自己掌握。
我周围的人都是如此,不知其他高手牛X有没有更好的方法,如果有大家一起来说说。
过去,我也认为我掌握了。因为以前用TC和VC等等,都可行。直到最近,换了个电脑,换了个编译平台,问题出现了。如我在LinkError一问中说描述的,编译通过,可是文件链接有问题。以前没有遇到过,现在还真是有些措手不及。
后来下载了一个TC30,跑一遍,仍然是编译通过,运行时出现LinkError:Undefined symbol _show
show()是我在其他文件show.c中写的一个函数,在show.h中有声明,void show(void);而且在同一个目录下面,究竟问题出在哪里呢?
如果是编译器设置的问题,对于编译器,包含文件编译时,有些什么需要的设置没有。我现在是按照默认的设置。C的库目录、Include目录等目录设置全都检查过了。可是编译通过,运行链接有问题这其中到底会是哪些地方没顾忌到呢?
如果是语法的问题,文件包含的标准过程和声明规范是什么样的呢?
请大家说说谢谢。
现在我就先说说我的包含过程吧。
1、将void show(void) 函数写入文件show.c保存
2、建立show.h。声明 void show(void);
3、在main.c中,用预编译命令#include "show.h"将show.h包含进去
4、编译通过
5、运行
就是这么一个流程,可是在第5步出现了问题总是出现Undefined Symbol _show
望大家积极讨论,不吝赐教!谢谢。