#error 如何在KEIL 5中让其编译通过?

  • zhangsf_chongza
  • LV5工程师
  • |      2016-10-26 14:06:05
  • 浏览量 1604
  • 回复:3
本帖最后由 zhangsf_chongzai 于 2016-10-26 14:08 编辑
如题:
这个在KEIL5中编译通不过?那个晓得如何设置让其通过??? 67076
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:4
汉云 2016-10-26
我的编译是没有问题的。 那个定义所在的位置
0   回复
举报
发布
999 2016-10-26
之所以在预处理阶段 会报error,就是因为#if.. 条件不成立,就进入到#else中执行#error了。 要看你#if...的条件了,没帖全代码,也不知道到底是#ifdef 、#ifndef、#if define 。。。
0   回复
举报
发布
MOP 2016-10-26
本帖最后由 MOP 于 2016-10-26 14:49 编辑 如果有#if判斷附帶#error的話,通常會跟函式庫非常重要的參數才需要您定義完整,例如Adafruit的SSD1306驅動
//#define SSD1306_128_64

//#define SSD1306_128_32

//#define SSD1306_96_16



#if !defined SSD1306_128_64 && !defined SSD1306_128_32 && !defined SSD1306_96_16

  #error "At least one SSD1306 display must be specified in SSD1306.h"

#endif
以上編譯器會先預判,發現沒定義,就會輸出error訊息,並停止編譯
0   回复
举报
发布
LiuYang 2016-10-26
本帖最后由 LiuYang 于 2016-10-26 14:19 编辑 #if的地方如果没有定义,就会跳转到#error是来显示显示。 编译通过的方法就是在其他地方定义个#if判断的那个宏定义。 #error已经提示了,需要什么就定义什么。
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子