你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

MDk路径深度对工程编译的影响

[复制链接]
anobodykey 发布时间:2018-3-30 23:11
主机环境:Windows 64bits开发环境:MDK5.25$ q& ], A2 b" X$ q
目标板:NUCLEO-F767ZI* i* P7 J! n  x1 r$ @' |
之前在咸鱼买了一块NUCLEO-F767ZI开发板,刚好可以用来学习一下以太网的应用,在库中针对NUCLEO-F767ZI开发板只提供了一个LwIP_HTTP_Server_Netconn_RTOS例程,编译之后下载到开发板可以正常运行,因此想从基础开始学习,把756例程中的LwIP_TCP_UDP_Echo_Server_Netconn_RTOS例程应用到F767板卡中,文件添加完毕后编译发现出现了错误,如下:; m( F. v' L( w% i8 @* o! d
捕获.PNG ' ]  l, |  A$ M) f) j
提示无法打开portmacro.h文件,但该文件的确存在,还在想是不是头文件路径没添加,查看了一下头文件设置正确,因此工程设置是正确的,而HTTP例程可以正确编译,百思不得解,后来我把portmacro.h头文件拷贝到inc路径下,例程就可以正确编译了,看来是路径问题导致编译器无法正确打开头文件.后面把portmacro.h头文件还原,查看了工程路径深度,如下: 捕获.PNG ( d$ w; V0 k+ k0 n9 R. [$ Y
可以看到文件路径还是很深的,一共大概有160+个字符深度,因此把路径深度减小,再次编译,发现可以正确编译了,如下:6 D. T. g- [# ~8 ~  X  d& i1 U% l6 C  L
捕获.PNG
0 e: \3 t5 `9 b: s' b, }2 J因此,当发现无法打开某个头文件时并且头文件路径设置正确的话,可以看看是否是路径深度的问题,大家可以自行测试一下该问题。6 D8 _) o1 j& W( A6 [  E6 |
收藏 1 评论8 发布时间:2018-3-30 23:11

举报

8个回答
Inc_brza 回答时间:2018-3-31 09:04:47
应该不是路径太深,而是路径名太长了
MrJiu 回答时间:2018-3-31 10:26:08
其实呢,是win对路径名的长度有要求。。。我记得好像是128还是256来着,就是路径所有名字的字符数量有要求。。。mdk毕竟调用的win的api,所以也会有这方面的问题。。。。
wenyangzeng 回答时间:2018-3-31 10:50:18
在C++配置里添加portmacro.h所在文件夹的路径应该就可以了。
zero99 回答时间:2018-3-31 13:37:25
感谢分享,已更新到3月原创 https://www.stmcu.org.cn/module/forum/thread-615031-1-1.html
anobodykey 回答时间:2018-3-31 14:03:26
Inc_brza 发表于 2018-3-31 09:04
- ]1 C+ ]+ r) Q- n7 u$ ~1 D应该不是路径太深,而是路径名太长了

5 A% [* ]  R. d0 R4 e对,是整个路径的总长度太长
anobodykey 回答时间:2018-3-31 14:04:20
MrJiu 发表于 2018-3-31 10:261 J4 I% ?; S* {( w2 J* W' ^0 m
其实呢,是win对路径名的长度有要求。。。我记得好像是128还是256来着,就是路径所有名字的字符数量有要求 ...

3 A4 t1 W8 e% ]) B& f% N2 m8 T  S是的,那估计IAR也会有这种问题
anobodykey 回答时间:2018-3-31 14:05:38
wenyangzeng 发表于 2018-3-31 10:50  l* E3 A0 z- r9 C2 G( G
在C++配置里添加portmacro.h所在文件夹的路径应该就可以了。
# T4 t9 B. e0 Z$ U9 `7 O
这个在工程是正确配置了的,是路径的深度以及长度的问题,你可以测试一下
wzl6 回答时间:2018-4-13 09:12:53
感谢分享

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版