OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7918|回复: 29

编译总出错L6218E:Undefined symbol str (referred from main.o).

[复制链接]

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
发表于 2016-4-14 10:21:36 | 显示全部楼层 |阅读模式
5金钱
我在exti.h文件中定义了数组str[12],exti.c文件中有用到,在main函数中也有用到,但是编译出现L6218E:Undefined symbol str (referred from main.o).的错误

最佳答案

查看完整内容[请看2#楼]

在exit.c 里加上这么一句话就可以 u8 str[12]; extern声明变量前,这个变量一定要真实声明过才行,你看看你工程里有没有
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6758

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12991
金钱
12991
注册时间
2012-11-26
在线时间
3789 小时
发表于 2016-4-14 10:21:37 | 显示全部楼层

在exit.c 里加上这么一句话就可以

u8 str[12];

extern声明变量前,这个变量一定要真实声明过才行,你看看你工程里有没有
学无止境
回复

使用道具 举报

70

主题

6758

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12991
金钱
12991
注册时间
2012-11-26
在线时间
3789 小时
发表于 2016-4-14 10:25:09 | 显示全部楼层
你extern了没     
回复

使用道具 举报

头像被屏蔽

7

主题

21

帖子

0

精华

禁止发言

积分
1370
金钱
1370
注册时间
2011-6-12
在线时间
142 小时
发表于 2016-4-14 10:26:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 10:27:24 | 显示全部楼层

是定义的全局变量
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 10:27:46 | 显示全部楼层
cwfwh 发表于 2016-4-14 10:26
退出mdk ,把工程重新编译

退出好几次了,编译还是错误
回复

使用道具 举报

头像被屏蔽

7

主题

21

帖子

0

精华

禁止发言

积分
1370
金钱
1370
注册时间
2011-6-12
在线时间
142 小时
发表于 2016-4-14 10:28:51 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 10:29:27 | 显示全部楼层
cwfwh 发表于 2016-4-14 10:28
extern  一下变量

定义的就是全局变量
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-4-14 10:35:10 | 显示全部楼层
包含头文件/路径
回复

使用道具 举报

70

主题

6758

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12991
金钱
12991
注册时间
2012-11-26
在线时间
3789 小时
发表于 2016-4-14 10:59:43 | 显示全部楼层
忆初仁 发表于 2016-4-14 10:29
定义的就是全局变量

呵呵   你在.h里声明,在.c调用,在主函数里绝壁是没有调用.h  否则,就会报重复。你既没有调用.h,又没有extern

在这叫嚣什么全局函数,真是无语了
学无止境
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 11:02:14 | 显示全部楼层
jermy_z 发表于 2016-4-14 10:59
呵呵   你在.h里声明,在.c调用,在主函数里绝壁是没有调用.h  否则,就会报重复。你既没有调用.h,又没有 ...

在.c文件里都包含有.h头文件的,用了extern好不啦?
回复

使用道具 举报

70

主题

6758

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12991
金钱
12991
注册时间
2012-11-26
在线时间
3789 小时
发表于 2016-4-14 11:03:44 | 显示全部楼层
忆初仁 发表于 2016-4-14 11:02
在.c文件里都包含有.h头文件的,用了extern好不啦?

那问你有没有用extern   你来句全局变量。。。

查查自己问题吧,根据你描述的,不知道你到底干了啥
学无止境
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 11:04:27 | 显示全部楼层

已经包含了
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 11:05:13 | 显示全部楼层
jermy_z 发表于 2016-4-14 11:03
那问你有没有用extern   你来句全局变量。。。

查查自己问题吧,根据你描述的,不知道你到底干了啥

我说你这人,说话怎么一股火药味?至于么。。。
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-4-14 11:21:58 | 显示全部楼层
忆初仁 发表于 2016-4-14 11:05
我说你这人,说话怎么一股火药味?至于么。。。

要接受坛友的批评指导

就说你的求助吧,刚看到你的帖子,问题描述不清楚,后边坛友对你进行指导提醒,你也是简单回复自己的理解,没有附图/程序等基本材料,其实,附图/程序这是这种问题最基本、最快捷的解决过程,这是在楼主位就体现出来的

先别说火气大,如果你想帮助一下坛友,却多次看到连求助问题都描述不清的帖子,想帮都不知道如何下手,你也会有火气,没有利益交换,能主动帮你就足以值得感激了
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

头像被屏蔽

7

主题

21

帖子

0

精华

禁止发言

积分
1370
金钱
1370
注册时间
2011-6-12
在线时间
142 小时
发表于 2016-4-14 11:25:40 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 11:44:58 | 显示全部楼层
龙之谷 发表于 2016-4-14 11:21
要接受坛友的批评指导

就说你的求助吧,刚看到你的帖子,问题描述不清楚,后边坛友对你进行指导提醒, ...

谢谢你的指出,是我自己不习惯,以后一定会注意的
是这样的
exti.h文件中是extern u8 str[12];       
在exti.c文件中引用,sprintf((char*)str,"read:%04X",read);
在main.c中,        LCD_ShowString(30,270,200,12,12,str);       
就是这种关系,然后编译就有错了
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 11:47:08 | 显示全部楼层
jermy_z 发表于 2016-4-14 11:03
那问你有没有用extern   你来句全局变量。。。

查查自己问题吧,根据你描述的,不知道你到底干了啥

对不起啊,不该说你,怪我没有把问题描述清楚,以后我会注意的,对不起
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 11:48:15 | 显示全部楼层
是这样的
exti.h文件中是extern u8 str[12];        
在exti.c文件中引用,sprintf((char*)str,"read:%04X",read);
在main.c中,        LCD_ShowString(30,270,200,12,12,str);        
就是这种关系,然后编译就有错了
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-4-14 12:12:55 | 显示全部楼层
态度是好的,但你的回复还是没有在重要点上
1.检查是否添加文件到工程
2.头文件包含
3.路径包含
如果以上三点都做到了,针对每点分别贴个图出来,帖图/程序不麻烦
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

70

主题

6758

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12991
金钱
12991
注册时间
2012-11-26
在线时间
3789 小时
发表于 2016-4-14 13:09:34 | 显示全部楼层
忆初仁 发表于 2016-4-14 11:48
是这样的
exti.h文件中是extern u8 str[12];        
在exti.c文件中引用,sprintf((char*)str,"read:%04 ...

上程序吧   反正也不是啥机密程序
学无止境
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 13:52:31 | 显示全部楼层
jermy_z 发表于 2016-4-14 13:09
上程序吧   反正也不是啥机密程序

test.rar (3.52 MB, 下载次数: 81)
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 14:17:31 | 显示全部楼层
1.PNG 这是exti.h文件中的内容
2.PNG
这是exti.c文件其中用到数组str[12]的程序
3.PNG


这是main.c文件中用到str[12]的地方
考虑到下载程序麻烦,我就贴出来用到str[12]的所有程序,这些程序就只是想实现简单的功能,在例程上改的。
此外,文件已添加到工程,头文件和路径都有包含。
如果有不清楚或者错误的地方还请高人指点。
下次一定把所有相关问题都描述出来并说清楚,论坛新手不知道怎么发问,不当之处还望多多谅解。
回复

使用道具 举报

70

主题

6758

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12991
金钱
12991
注册时间
2012-11-26
在线时间
3789 小时
发表于 2016-4-14 14:17:32 | 显示全部楼层

你还真蛮逗的,全工程里  str一次没定义,就只有一个extern声明.....

当然,没有嘲笑你,不要再多想了....
学无止境
回复

使用道具 举报

70

主题

6758

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12991
金钱
12991
注册时间
2012-11-26
在线时间
3789 小时
发表于 2016-4-14 14:18:24 | 显示全部楼层

如果你不上工程,你这个问题,讲的口干舌燥,也讲不清楚。。。
学无止境
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 14:20:28 | 显示全部楼层
jermy_z 发表于 2016-4-14 14:17
你还真蛮逗的,全工程里  str一次没定义,就只有一个extern声明.....

当然,没有嘲笑你,不要再多想了 ...

我是初学者,好多不懂,能否给我大致讲一讲?感激不尽~
回复

使用道具 举报

70

主题

6758

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12991
金钱
12991
注册时间
2012-11-26
在线时间
3789 小时
发表于 2016-4-14 14:21:14 | 显示全部楼层
忆初仁 发表于 2016-4-14 14:20
我是初学者,好多不懂,能否给我大致讲一讲?感激不尽~

已经把问题点跟你说的很清楚了,还不懂,多提高下C语言能力吧
学无止境
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 14:24:51 | 显示全部楼层
jermy_z 发表于 2016-4-14 14:21
已经把问题点跟你说的很清楚了,还不懂,多提高下C语言能力吧

好哒,谢谢大侠
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 15:48:33 | 显示全部楼层
jermy_z 发表于 2016-4-14 14:21
已经把问题点跟你说的很清楚了,还不懂,多提高下C语言能力吧

太感谢了,问题已解决,我得好好补补C语言了,这次发帖也让我明白了一些,怪我不懂事~~非常感谢大侠
回复

使用道具 举报

7

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-3-11
在线时间
54 小时
 楼主| 发表于 2016-4-14 15:51:05 | 显示全部楼层
龙之谷 发表于 2016-4-14 12:12
态度是好的,但你的回复还是没有在重要点上
1.检查是否添加文件到工程
2.头文件包含

多谢前辈指出我的问题,怪我太不懂事了,以后我一定会多多注意的,问题已解决,C语言的基础知识得好好巩固一下了,感谢~
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 22:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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