如何解决当文件明确存在时,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 举报,一经查实,本站将立刻删除。