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

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

[复制链接]
anobodykey 发布时间:2018-3-30 23:11
主机环境:Windows 64bits开发环境:MDK5.25
4 v+ V; H+ a- {  {: V6 \目标板:NUCLEO-F767ZI
' O2 l$ E, {: A. l; O, _6 ]之前在咸鱼买了一块NUCLEO-F767ZI开发板,刚好可以用来学习一下以太网的应用,在库中针对NUCLEO-F767ZI开发板只提供了一个LwIP_HTTP_Server_Netconn_RTOS例程,编译之后下载到开发板可以正常运行,因此想从基础开始学习,把756例程中的LwIP_TCP_UDP_Echo_Server_Netconn_RTOS例程应用到F767板卡中,文件添加完毕后编译发现出现了错误,如下:8 s2 |( z6 O  r+ R- h3 J
捕获.PNG ) K; q1 l) B* g' G
提示无法打开portmacro.h文件,但该文件的确存在,还在想是不是头文件路径没添加,查看了一下头文件设置正确,因此工程设置是正确的,而HTTP例程可以正确编译,百思不得解,后来我把portmacro.h头文件拷贝到inc路径下,例程就可以正确编译了,看来是路径问题导致编译器无法正确打开头文件.后面把portmacro.h头文件还原,查看了工程路径深度,如下: 捕获.PNG ( a4 w; o" c- ]2 X
可以看到文件路径还是很深的,一共大概有160+个字符深度,因此把路径深度减小,再次编译,发现可以正确编译了,如下:1 o' u2 N6 s3 p& E! B
捕获.PNG
- R3 F( ~/ ~( \% A2 D+ T因此,当发现无法打开某个头文件时并且头文件路径设置正确的话,可以看看是否是路径深度的问题,大家可以自行测试一下该问题。
& R! v6 }5 T" G$ t% X. s# R4 ~- ~
收藏 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:044 N1 a: ]* Y$ D
应该不是路径太深,而是路径名太长了
, @; }" k6 |7 Q" l: R9 Q2 T6 |: o
对,是整个路径的总长度太长
anobodykey 回答时间:2018-3-31 14:04:20
MrJiu 发表于 2018-3-31 10:26
4 r$ r7 a0 ?" R. s' O其实呢,是win对路径名的长度有要求。。。我记得好像是128还是256来着,就是路径所有名字的字符数量有要求 ...

! |9 ~. e& T0 W8 L9 [( _- Q是的,那估计IAR也会有这种问题
anobodykey 回答时间:2018-3-31 14:05:38
wenyangzeng 发表于 2018-3-31 10:50
$ [3 U2 l- T+ ^$ O5 Q4 q在C++配置里添加portmacro.h所在文件夹的路径应该就可以了。
8 r+ t' h  `3 y' z6 S% n7 C, l
这个在工程是正确配置了的,是路径的深度以及长度的问题,你可以测试一下
wzl6 回答时间:2018-4-13 09:12:53
感谢分享

所属标签

相似分享

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