source insight无法识别包含在其他文件的宏定义,在头文件中明明定义了

在host.h中明明定义了这个宏啊!#defineMMC_POWER_OFF0#defineMMC_POWER_UP1#defineMMC_POWER_ON2... 在 host.h 中 明明定义了这个宏啊 !
#define MMC_POWER_OFF 0
#define MMC_POWER_UP 1
#define MMC_POWER_ON 2
展开
 我来答
kkkwing
推荐于2018-02-01 · TA获得超过1221个赞
知道小有建树答主
回答量:267
采纳率:90%
帮助的人:257万
展开全部
因为Source Insight并不是编译器,所以宏定义是否可以识别和源文件中是否包含了该头文件并没有关系.
你必须在工程中将对应的头文件添加进去才行.
菜单中选择 Project -> Add and Remove Project Files ,之后找到头文件所在的文件夹添加上相应的头文件.
一般不是立即有效,可以选择Project -> Synchronize Files 更新一下就好了.
追问
我创建工程的时候就是这样做的  而且我也检查了一下 是不是那个文件没有添加到  有添加啊   还是不行 就是宏定义跟踪不到  而且 不是所有的宏 而是 部分宏
追答
可能工程建立有点问题,选择Project -> Rebuild Project再试试看.

另外为了确认你的Source Insight设置是否存在问题,你可以单独建一个工程试试,只添加这个源文件和那个host.h这两个文件到工程中,看看什么情况.

有时候Source Insight使用时间长了会出现点小毛病,如果你的设置没有什么需要特别保存的内容,可以恢复默认设置试试,通常都可以解决问题.

方法:
1、先关闭Source Insight软件
2、打开"我的文档"文件夹,找到"Source Insight"文件夹
3、打开"Source Insight"文件夹后找到"Settings"文件夹,双击打开。
4、此文件夹里有个"GLOBAL.CF3"文件,删除掉。
5、再次打开Source Insight软件,打开此工程看看是否好用了。
jimmyspa110
推荐于2017-09-24
知道答主
回答量:12
采纳率:0%
帮助的人:8.8万
展开全部
我也遇到同样的问题。
问题:只有一个宏跟踪不到,其他宏正常。
解决:1.在定义处(行)下一行重新定义宏。
2.查找所有引用宏的行。
3.在引用宏语句处,加几个空格。
原因:猜测是因为source insight 符号集识中找不到宏。经常改的宏会遇到这种情况。
如果是引用了外部定义的inl文件,也会出现这种问题。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱笑的七小沐
2018-02-01 · TA获得超过142个赞
知道答主
回答量:22
采纳率:50%
帮助的人:2.7万
展开全部

这个问题刚刚解决了:

从IAR中找到这个变量的具体定义位置,在source insight中打开具体文件,然后 Project --> Synchronize Files,点击

,进行文件的同步,然后就可以解决了。

思考:这个按钮存在的意义就是避免source insight在解析全部文件的时候有些文件被略过的问题,用于某一个文件的单独同步。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式