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

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

[复制链接]
anobodykey 发布时间:2018-3-30 23:11
主机环境:Windows 64bits开发环境:MDK5.25. e1 E* i8 ]# X* N3 H) H$ }
目标板:NUCLEO-F767ZI
$ |, m8 i) M( }' N之前在咸鱼买了一块NUCLEO-F767ZI开发板,刚好可以用来学习一下以太网的应用,在库中针对NUCLEO-F767ZI开发板只提供了一个LwIP_HTTP_Server_Netconn_RTOS例程,编译之后下载到开发板可以正常运行,因此想从基础开始学习,把756例程中的LwIP_TCP_UDP_Echo_Server_Netconn_RTOS例程应用到F767板卡中,文件添加完毕后编译发现出现了错误,如下:( n, \8 A: o4 M, u1 l
捕获.PNG
/ p( }0 G2 \% Z  I- O提示无法打开portmacro.h文件,但该文件的确存在,还在想是不是头文件路径没添加,查看了一下头文件设置正确,因此工程设置是正确的,而HTTP例程可以正确编译,百思不得解,后来我把portmacro.h头文件拷贝到inc路径下,例程就可以正确编译了,看来是路径问题导致编译器无法正确打开头文件.后面把portmacro.h头文件还原,查看了工程路径深度,如下: 捕获.PNG
+ \7 L' C* }- {7 I可以看到文件路径还是很深的,一共大概有160+个字符深度,因此把路径深度减小,再次编译,发现可以正确编译了,如下:
* K  X6 n8 |4 q# i- C8 s% b0 G$ m. n 捕获.PNG $ J7 ]" H; o3 S9 n1 Q* E: K
因此,当发现无法打开某个头文件时并且头文件路径设置正确的话,可以看看是否是路径深度的问题,大家可以自行测试一下该问题。
( j; G) c5 L6 \+ ]2 [; \
收藏 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
0 @( V" @3 R% Q% A  N应该不是路径太深,而是路径名太长了
1 }( ]0 p" A1 a; Q- C& W7 ~
对,是整个路径的总长度太长
anobodykey 回答时间:2018-3-31 14:04:20
MrJiu 发表于 2018-3-31 10:26
9 p& ?  u' Z) ^其实呢,是win对路径名的长度有要求。。。我记得好像是128还是256来着,就是路径所有名字的字符数量有要求 ...
" T: X7 I) \* K0 x% J7 S
是的,那估计IAR也会有这种问题
anobodykey 回答时间:2018-3-31 14:05:38
wenyangzeng 发表于 2018-3-31 10:50
7 _$ M* j' J. Z3 `在C++配置里添加portmacro.h所在文件夹的路径应该就可以了。

: ?; g/ h% B# H" _这个在工程是正确配置了的,是路径的深度以及长度的问题,你可以测试一下
wzl6 回答时间:2018-4-13 09:12:53
感谢分享

所属标签

相似分享

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