微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当文件明确存在时,PIO 编译器说没有这样的文件或目录

如何解决当文件明确存在时,PIO 编译器说没有这样的文件或目录

我在使用 VScode 的 PlatformIO 扩展中遇到“没有这样的文件或目录”问题已经有一段时间了,而在 Visual Studio 中它从来都不是问题。 (不是 VScode)

我的项目设置如下:

MyProject
|--include
|  |--config.h
|--lib
|  |--LibraryA
|  |  |--libraryA.h
|  |  |--libraryA.cpp
|  |--LibraryB
|  |  |--libraryB.h
|  |  |--libraryB.cpp
|--src
|  |--main.cpp

现在,如果我在 main.cpp 中包含 config.h 一切都很好。 但是如果我在 LibraryA/B.h 或 LibraryA/B.cpp 中包含 config.cpp,我会收到“没有这样的文件或目录”编译错误

这是为什么?如果我右键单击 #include "config.h" 并选择“转到引用”,它会将我带到配置文件,或者我可以在输入 config.h 时“Tab”自动完成,它也能成功。所以它知道头文件存在。为什么链接器找不到它?

任何帮助将不胜感激。 谢谢

解决方法

我终于找到了解决方案。 src 和 include 文件夹中的所有文件都不是全局的。链接器无法知道这些文件的存在,即使智能(与编译器不同的链接器不同)知道它的引用也是如此。

要解决此问题,请将以下行添加到 platform.ini 文件中。 build_flags = -I 包含

这将使包含文件夹的内容可见

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。