mErrCount:虽然在项目属性的include路径中声明了标识符,但未找到该标识符
mErrCount: Identifier not found although it is declared in the include path of Project properties
这是我的代码,名为test.cpp
#include <test.h>
namespace ScStdTb {
#define CFG_REG 0
#define CMD_REG 0x4
#define CTRL_REG 0x8
#define STAT_REG 0xC
void BasicTB::test()
{
void testCase();
}
void testCase()
{
unsigned int data = 0x0;
data=1;
REG_WRITE(CTRL_REG,&data);
}
}
REG_WRITE是TbCommBase.h 中定义的宏
以下是其中的代码片段:
/*macro for register read/write*/
#define REG_WRITE(reg, value)
if (send_transaction((reg), value, B_WR)) {
mErrCount++;
PRINT_DBG("Write failed : Reg at 0x"<< hex << (reg)
<<", data 0x"<< value << dec);
} else {
wait_delta();
}
在项目属性中,我添加了TbCommBase.h的路径项目->属性->配置属性->C/C++->其他包含目录。
mErrCount也在TbCommBase.h中定义
unsigned int mErrCount;
当我尝试编译test.cpp时,我会得到以下错误:
错误C2065:"mErrCount":未声明的标识符
错误C3861:"send_transaction":找不到标识符
错误C3861:"name":找不到标识符
错误C3861:"wait_delta":找不到标识符
文件TbCommBase.h中没有错误。它只在test.cpp中显示未声明的标识符,尽管我已经引用了标头。我已经类似地执行了以前的文件,没有任何问题。
有什么想法吗?
最后它非常简单。作用域解析运算符导致了此问题。
这是更新后的代码。
#include <ifxPkcTest.h>
namespace ScStdTb {
#define CFG_REG 0
#define CMD_REG 0x4
#define CTRL_REG 0x8
#define STAT_REG 0xC
void BasicTB::test()
{
void testCase();
}
void BasicTB::testCase() //SOLUTION
{
unsigned int data = 0x0;
data=1;
REG_WRITE(CTRL_REG,&data);
}
}
相关文章:
- #ifdef和未声明的标识符
- 未声明的标识符编译暗黑破坏神 2 程序"muleview"
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- Google protobuf 时间戳未声明标识符,在 Windows 上具有C++
- 当简单捕获中的标识符显示为参数的声明符 ID 时,没有编译器诊断
- 使用说明符 extern 声明的C++中的标识符链接
- 使用未声明的标识符"sqrt"?
- 对类 (C++) 中的私有变量使用未声明的标识符
- 我的代码中有错误,未声明的标识符
- 未定义的标识符/未声明
- 错误:在 C++ 'std'使用未声明的标识符
- 在编译器之前检测未声明的标识符
- 使用未声明的标识符'temp'
- 在没有标识符的情况下如何读取复杂的C++类型声明?
- 使用未声明的标识符"yylex"和"yyin"?
- 使用"class"关键字,后跟未声明的标识符
- 未声明的标识符错误,但变量定义正确 (?)
- C2065 'cout':未声明的标识符
- C++模板模板参数中未声明的标识符
- 一种用于从C++迁移到 Python 的技术,用于减少缺少标识符声明的影响