当文件明确存在时,PIO 编译器说没有这样的文件或目录
PIO compiler says no such file or directory when file clearly exists
我在使用 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"
和 select“转到参考”,它会将我带到配置文件,或者我可以在输入 config.h 时“Tab”自动完成,它也能成功完成。所以它知道头文件存在。为什么链接器找不到它?
如有任何帮助,我们将不胜感激。
谢谢
我终于找到了解决办法。 src 和 include 文件夹中的所有文件都不是全局的。链接器无法知道这些文件的存在,即使智能感知(与链接器不同——与编译器不同)知道它的引用。
要解决此问题,请将以下行添加到 platform.ini 文件中。
build_flags = -I include
这将使包含文件夹的内容可见
我在使用 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"
和 select“转到参考”,它会将我带到配置文件,或者我可以在输入 config.h 时“Tab”自动完成,它也能成功完成。所以它知道头文件存在。为什么链接器找不到它?
如有任何帮助,我们将不胜感激。 谢谢
我终于找到了解决办法。 src 和 include 文件夹中的所有文件都不是全局的。链接器无法知道这些文件的存在,即使智能感知(与链接器不同——与编译器不同)知道它的引用。
要解决此问题,请将以下行添加到 platform.ini 文件中。
build_flags = -I include
这将使包含文件夹的内容可见