查看: 6806|回复: 8

[求助] MCUXpresso IDE编译总是提示头文件找不到!

[复制链接]
  • TA的每日心情
    奋斗
    2021-2-4 16:14
  • 签到天数: 139 天

    连续签到: 1 天

    [LV.7]常住居民III

    14

    主题

    212

    帖子

    0

    高级会员

    Rank: 4

    积分
    881
    最后登录
    2021-2-4
    发表于 2019-7-8 15:31:49 | 显示全部楼层 |阅读模式
    在原来工程上移植msc_sdcard_freertos的例程,按照SDK给出的USB示例,按照例程出现的位置路径移植(先不说移植后功能的问题,编译就通不过),总是提示头文件找不到。
    查看添加的头文件位置,确实包含了添加代码头文件的路径。如下图:
    找不到路径的头文件使用鼠标也可以跳转过去,但编译后一直报错,提示没有此文件或者目录。之前移植其他代码时也遇到这样的问题,总是报错找不到头文件,但路径确实添加了。此问题困扰了很长时间,求大神告知!
    我知道答案 目前已有8人回答
    Snipaste_2019-07-08_15-18-44.png
    Snipaste_2019-07-08_15-19-29.png
    Snipaste_2019-07-08_15-23-03.png
    Snipaste_2019-07-08_15-22-49.png
    今天天气不错!签到!
    回复

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24956
    最后登录
    2025-7-25
    发表于 2019-7-8 17:05:14 | 显示全部楼层
    MCUXpresso IDE支持工程直接拷贝功能,楼主没有从头开始创建,然后在其基础上再修改,可以省下路径添加遗漏或者添加错误这种很细节的工作
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-2-4 16:14
  • 签到天数: 139 天

    连续签到: 1 天

    [LV.7]常住居民III

    14

    主题

    212

    帖子

    0

    高级会员

    Rank: 4

    积分
    881
    最后登录
    2021-2-4
     楼主| 发表于 2019-7-22 15:52:41 | 显示全部楼层
    小恩GG 发表于 2019-7-8 17:05
    MCUXpresso IDE支持工程直接拷贝功能,楼主没有从头开始创建,然后在其基础上再修改,可以省下路径添加遗漏 ...

    你好,前面说的有点乱,现在找一个文件说明。在SDK的例程 lpcxpresso54628_dev_msc_sdcard_freertos 中的source/disk_sdcard.c主函数中引入#include "usb.h",这个头文件路径 usb/include/usb.h,在项目-->属性-->C/C++ Build-->Settings-->Includes 中的设置也添加了 ../usb/include  应该是按照这个流程添加的。
    于是我全部移植到一个新建的项目中,同样操作,新项目编译会报错。报错信息如下图片请问,这种情况怎样解决?

    编译报错提示usb.h找不到

    编译报错提示usb.h找不到

    代码中的位置

    代码中的位置

    环境变量设置

    环境变量设置
    今天天气不错!签到!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24956
    最后登录
    2025-7-25
    发表于 2019-7-23 09:21:41 | 显示全部楼层
    l546863256 发表于 2019-7-22 15:52
    你好,前面说的有点乱,现在找一个文件说明。在SDK的例程 lpcxpresso54628_dev_msc_sdcard_freertos 中的 ...

    全部移植的话,因为细节工作比较多,可能会有遗漏,你试试我上次建议你的方法
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-2-4 16:14
  • 签到天数: 139 天

    连续签到: 1 天

    [LV.7]常住居民III

    14

    主题

    212

    帖子

    0

    高级会员

    Rank: 4

    积分
    881
    最后登录
    2021-2-4
     楼主| 发表于 2019-7-24 10:02:27 | 显示全部楼层
    小恩GG 发表于 2019-7-23 09:21
    全部移植的话,因为细节工作比较多,可能会有遗漏,你试试我上次建议你的方法 ...

    你好,感谢你前面的提示,我试了很多次,依然没解决。这个问题我已经折腾几天了,还时没搞明白MCUPressoIDE的环境问题,总是卡死在编译找错环节。关于你所说的,我有三点疑问:1.你所说的工程拷贝功能具体指的什么,怎么操作? 我是这样理解的:假设我有一个写好的A工程,由于没有USB功能,我需要添加一个USB功能。在SDK例程B中有USB功能,我把B工程的USB相关.c和.h文件全部拷贝过来放到A工程中,然后在 项目->属性->C/C++ Build->Settings->MCU C Compiler->Includes 旁边方框中添加相应的头文件路径,最后在编译。思路就是添加相应源文件,在添加头文件路径,这样操作还有什么问题?你所说的遗漏指的是添加头文件路径错吗?可是添加路径我已经检查过了,没问题的。你说的遗漏细节是哪些呢?我还需要添加其它操作吗?
    我需要SDK的例程是lpc54628_dev_msc_sdcard_freertos  我从例程拷贝出来的文件如下图所示。移植这些文件就可以了
    2.对于使用MCUPressoIDE还有一点疑问:如果工程中既有C文件,也有CPP文件,在添加头文件路径时项目->属性->C/C++ Build->Settings->MCU C Compiler 和 MCU C Compiler 的Includes下面都需要添加头文件路径吗?有时提示找不到头文件,可是能跳转到定义啊。我尝试在两处都添加头文件路径,头文件找不到的错误提示没有了,但是其它问题又来了。在例程中未添加某些头文件没有提示找不到变量定义,移植过来后有些文件还需要额外添加头文件,不明白其中原因。。。。。。
    3.移植过去后报错:undefined reference to 'SD_Init()'  等等,很多类似的"undefined reference to ......",使用鼠标跳转到定义又能够找的到这些函数。这些错误是什么引起的呢?
    求大神告知!


    USB移植文件

    USB移植文件

    编译报错undefined reference to

    编译报错undefined reference to
    今天天气不错!签到!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-7-4 09:29
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    1

    主题

    48

    帖子

    10

    中级会员

    Rank: 3Rank: 3

    积分
    257
    最后登录
    2019-12-23
    发表于 2019-7-24 11:24:27 | 显示全部楼层
    l546863256 发表于 2019-7-24 10:02
    你好,感谢你前面的提示,我试了很多次,依然没解决。这个问题我已经折腾几天了,还时没搞明白MCUPressoI ...

    首先,关于C++和C compiler的路径问题,我建议你分开来处理,一般情况下没有C++需要编译的话,只更改C compiler的setting包含相应的路径即可。如果有C++ code需要C文件里的API,请参考驱动代码的头文件,用相关的宏把API的声明隔离开用C compiler进行编译(大多数driver都有这个宏,大概是叫什么#if defined (cplusplus) 这样的代码,记不太清了)。第二个,看你上面输出的error log,应该是在link的时候出的问题,请查看相应的C文件是否真的被添加到该项目中,如果只包含了头文件是可能出现这种能够跳转到声明函数但找不到object的问题。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24956
    最后登录
    2025-7-25
    发表于 2019-7-24 13:49:35 | 显示全部楼层
    l546863256 发表于 2019-7-24 10:02
    你好,感谢你前面的提示,我试了很多次,依然没解决。这个问题我已经折腾几天了,还时没搞明白MCUPressoI ...

    1. 直接在工程框中选择对应的工程右击,点击Copy,然后在工程框中右击并选择Paste就可以复制工程了。 Untitled.jpg
    2. 移植USB stac请参考附件
    MCUXpresso SDK USB Stack User's Guide_approval_review.pdf (2.14 MB, 下载次数: 6)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-2-4 16:14
  • 签到天数: 139 天

    连续签到: 1 天

    [LV.7]常住居民III

    14

    主题

    212

    帖子

    0

    高级会员

    Rank: 4

    积分
    881
    最后登录
    2021-2-4
     楼主| 发表于 2019-9-23 08:50:04 | 显示全部楼层
    后来经过尝试,发现在C++工程中添加C代码,不仅需要在 属性-->>C/C++Build-->>Settings-->>MCU C++ Compiler-->>includes里面添加C代码的路径,还需要在MCU C Compiler-->>Includes里面添加C文件路径,这样添加进去的文件编译就不会报错,头文件路径可以正常识别。
    今天天气不错!签到!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    帖子

    0

    新手上路

    Rank: 1

    积分
    3
    最后登录
    2024-5-23
    发表于 2024-5-23 09:17:23 | 显示全部楼层
    我原来也是缺少头文件,弄了半天发现把目录去掉中文目录就好了
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-27 20:01 , Processed in 0.108242 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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