找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5060|回复: 12
收起左侧

STM32 oled显示加了#include "oledfont.h"就报错,不加就不报错

[复制链接]
ID:494791 发表于 2019-7-25 10:49 | 显示全部楼层 |阅读模式
不加#include "oledfont.h"为第一张
加了之后就是第二张,提示我在oledfont.h中定义的那几个字模数组在main和oled重定义
有大佬知道怎么回事嘛?
一个include怎么会有定义呢?
感谢感谢

加#include "oledfont.h"

加#include "oledfont.h"

不加#include "oledfont.h"

不加#include "oledfont.h"
回复

使用道具 举报

ID:123289 发表于 2019-7-25 12:10 | 显示全部楼层
知道【#include】是什么意思吗?
你在让系统编译一个有错的东西了。
回复

使用道具 举报

ID:546770 发表于 2019-7-25 13:41 | 显示全部楼层
路径添加了没有?
回复

使用道具 举报

ID:342822 发表于 2019-7-25 16:17 | 显示全部楼层
加#include ../"oledfont.h试试
回复

使用道具 举报

ID:388197 发表于 2019-7-25 21:55 | 显示全部楼层
你看下OLED.H里面有没有对字模数组进行重定义
回复

使用道具 举报

ID:494791 发表于 2019-7-26 15:29 | 显示全部楼层

添加了,和oled.h在一个文件夹里面
回复

使用道具 举报

ID:494791 发表于 2019-7-26 15:29 | 显示全部楼层
yzwzfyz 发表于 2019-7-25 12:10
知道【#include】是什么意思吗?
你在让系统编译一个有错的东西了。

oledfont.h里面只有定义的字码,有什么错误呢?
回复

使用道具 举报

ID:494791 发表于 2019-7-26 15:31 | 显示全部楼层
cjm82 发表于 2019-7-25 21:55
你看下OLED.H里面有没有对字模数组进行重定义

没有啊,字模全在oledfont,h里面定义了
回复

使用道具 举报

ID:494791 发表于 2019-7-26 15:32 | 显示全部楼层
不加oledfont.h也能够正常显示,但是我就是想知道为什么不能添加
回复

使用道具 举报

ID:511461 发表于 2019-7-28 19:42 | 显示全部楼层
因为在“oledfont.h”中定义了许多数组,“oled.c”文件中采用#include “oledfont.h”,调用“oledfont.h”中的数组;在主函数"main.c"中也采用#include “oledfont.h”,调用“oledfont.h”中的变量,就会导致“oledfont.h”中的变量被重复定义。
就像你做的那样不需要再主函数里再加上#include “oledfont.h”,问题就解决了
回复

使用道具 举报

ID:494791 发表于 2019-7-31 17:54 | 显示全部楼层
aaaaaa。 发表于 2019-7-28 19:42
因为在“oledfont.h”中定义了许多数组,“oled.c”文件中采用#include “oledfont.h”,调用“oledfont.h ...

已经改正,就是你说的这个原因,谢谢
回复

使用道具 举报

ID:275398 发表于 2019-7-31 22:06 | 显示全部楼层
应该是头文件没有添加条件编译吧,导致重复编译了
回复

使用道具 举报

ID:284665 发表于 2019-7-31 23:02 | 显示全部楼层
你定义头文件的时候参照#ifndef的方式可以避免重复定义
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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