找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10224|回复: 19
收起左侧

keil中一个工程多个文件的问题

  [复制链接]
ID:228275 发表于 2017-8-18 15:40 | 显示全部楼层 |阅读模式
keil中有时候比较大的程序下面会有很多文件    比如分开的各个模块    查阅了一些资料只要用双引号在主函数中括起来就可以   但是我编译运行后是失败的   请问具体的做法是什么呢
回复

使用道具 举报

ID:213173 发表于 2017-8-18 17:33 | 显示全部楼层
看图示
无标题010.jpg

回复

使用道具 举报

ID:47286 发表于 2017-8-18 21:25 | 显示全部楼层
用""或者<>都可以 但你要有你引用的文件才行 没有当然找不到 你把要模块化的函数保存到单独的文件里并以.C结尾 然后 至少要存放在工作目录中 或者在工程选项里指定要包括的目录 然后就可以引用了
回复

使用道具 举报

ID:228336 发表于 2017-8-18 21:56 | 显示全部楼层
在设置里面添加一下头文件
回复

使用道具 举报

ID:162136 发表于 2017-8-18 22:09 | 显示全部楼层
设置里面可以增加头文件位置
回复

使用道具 举报

ID:149988 发表于 2017-8-19 07:21 | 显示全部楼层

RE: keil中一个工程多个文件的问题

失败的原因很多,不只是用双引号引起来那么简单。在这些模块的头文件中必须写有:“#include<reg52.h>具体要看使用什么单片机”以及其它一些该子模块中需要的功能的头文件,要定义该子模块中需要的变量,以及该子模块中子函数的函数名,在该子模块中还需要写入该子模块的头文件名。这些工作都做过了还有可能有“WARNING L16.......”的报警,在这些报警中告诉了没有被调用的子函数,所以还要在主程序中调用这些子函数。这种写法优点颇多,缺点就是较麻烦。
回复

使用道具 举报

ID:162136 发表于 2017-8-19 10:55 | 显示全部楼层
不倒翁.WZT 发表于 2017-8-19 07:21
失败的原因很多,不只是用双引号引起来那么简单。在这些模块的头文件中必须写有:“#include具体要看使用什 ...

没有使用的函数报警可以设置去掉的
回复

使用道具 举报

ID:382454 发表于 2019-3-13 15:16 | 显示全部楼层
一个功能模块一般有一个头文件,和一个C文件,C文件里包含你要调用的.h文件,如果你有开发版,可以尝试自己去写一个多文件,之后就知道怎样组合在一起的了。熟了之后可以续继写更多的模块组合在一起。
回复

使用道具 举报

ID:466164 发表于 2019-3-13 20:49 | 显示全部楼层
一个.c,配一个.h文件,没有.h怎么包含?

正常模式

正常模式
回复

使用道具 举报

ID:382454 发表于 2019-3-15 10:17 | 显示全部楼层
7358655 发表于 2019-3-13 20:49
一个.c,配一个.h文件,没有.h怎么包含?

h文件写声接口,定义一些变量,声明函数。C里就是写你在h里声明的函数。
回复

使用道具 举报

ID:430832 发表于 2019-3-15 20:41 | 显示全部楼层
可以上网上找一些实例模仿一下
回复

使用道具 举报

ID:286327 发表于 2019-3-16 10:45 | 显示全部楼层
有可能是你没有把文件加进去吧,也有可能你的头文件没有定义好找不到。或者是路径
回复

使用道具 举报

ID:492306 发表于 2019-3-17 10:49 | 显示全部楼层
如果是同一个变量在不同的文件中使用要把这些变量定义为外部变量,如 你在一个文件中定义了flag 另一个文件要用到flag变量 则在该文件 变量声明为extern flag1
回复

使用道具 举报

ID:485724 发表于 2019-3-17 10:58 | 显示全部楼层
建议你去找一个别人的头文件例子练练手你就知道怎么做了
回复

使用道具 举报

ID:492504 发表于 2019-3-17 13:20 | 显示全部楼层
还需要声明对应的“.H”文件,在对应的".H"文件中还需要声明".C"文件中有哪些子函数。
回复

使用道具 举报

ID:1044594 发表于 2022-9-13 08:35 | 显示全部楼层
失败的原因在下面可以看到
回复

使用道具 举报

ID:1044594 发表于 2022-9-13 08:38 | 显示全部楼层
7358655 发表于 2019-3-13 20:49
一个.c,配一个.h文件,没有.h怎么包含?

在.c同一个文件目录创建一个.h文件,.h文件有格式要求,#ifndef **_H #defined **_H ... #endif
回复

使用道具 举报

ID:883242 发表于 2022-9-13 11:28 | 显示全部楼层
把失败的错误贴出来,我猜是没有配置h文件路径。
回复

使用道具 举报

ID:59202 发表于 2022-9-13 14:05 | 显示全部楼层
<>是表示直接到编译软件的系统文件指定的地方去寻找,而“”是表示先在所写程序所在的文件夹下寻找,如果找不到再到编译软件的系统文件指定的地方去寻找。不过在所写程序所在的文件夹下寻找只限于该文件夹的根目录下,如果头文件包含在所写程序所在的文件夹下中的下一级文件夹中编译器就找不到了,就必须在 target options/C51/include paths中选择所有要用到的h头文件所在的最终文件夹
回复

使用道具 举报

ID:526543 发表于 2022-9-14 13:31 | 显示全部楼层
添加一下头文件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表