我在 Visual Studio 中使用 Resharper C++,由于明显的命名空间冲突,我收到了一个不明确的符号错误。例如,当我想实例化枚举模式时,我在 Sd.cpp 中收到此错误。
枚举类 Mode 在 Pins.hpp 中定义,后者包含在 Sd.hpp 中。但是,如果我在 Sd.ccp 中包含 Pins.hpp,则会弹出不明确的符号错误。编译项目没有问题。
Resharper / Intellisense 无法识别 Pins.hpp 是同一个文件吗?#pragma once
工作方式是通过文件路径,所以我不知道这会如何发生。
我最近更改了包含目录,所以这可能与问题有关。
任何帮助,将不胜感激。
hpp文件
#include "Pins.hpp"
cpp文件
#include "Pins.hpp"
Mode mode; //error here, Mode is underlined
文件.hpp
enum class Mode : uint32_t
{
AlternatePushPull = GPIO_MODE_AF_PP,
};
EDIT1:添加代码。EDIT2:将问题重命名为更有用的问题
事实证明,ReSharper 在 linting 时会查看整个 VS 解决方案,而不仅仅是项目。因为在我的解决方案中,我有一些项目包含相同的库,但来自不同的位置。因此 ReSharper 无法解析名称。
解决方案很简单:确保所有项目都包含相同的文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句