c++头文件包含错误
C++ header file inclusion error
我有一个标题"myHeaderFile.h"文件如下所示,由发布exe和单元测试exe使用。
#ifndef MYHEADERFILE_H
#define MYHEADERFILE_H
namespace myname1
{
namespace myname2
{
class A
{
...
};
#ifdef MYTESTCLASS
class TestABase
{
...
}
#endif
}
}
#endif
现在我们有一个单元测试文件myUnitTest.h文件如下
#ifndef MYUNITEST_H
#define MYUNITTEST_H
#ifndef MYTESTCLASS
#define MYTESTCLASS 1
#endif
#include "myHeaderFile.h"
class TestClass : public myname1::myname2::TestABase
{
...
};
#endif
现在在myUnitTest.cpp我有以下
#include "myUnitTest.h"
// Definition stuff.
当我编译时,我得到错误的错误C2039: TestABase:不是myname1::myname2的成员'myUnitTest.h(31):错误C2504: TestABase:基类未定义
是什么导致上面的错误?请帮我解决上述错误。注意:myHeaderFile.h来自库,所以我不能改变这个头文件。
谢谢!
您需要在myUnitTest.h
中包含myHeaderFile.h
。在代码块之后执行:
#ifndef MYTESTCLASS
#define MYTESTCLASS 1
#endif
编辑
由于这没有帮助,那么MYTESTCLASS
定义可能有问题。你在其他地方包括myHeaderFile.h
吗?也许你可以尝试在编译器选项中定义MYTESTCLASS
,而不是在myUnitTest.h
头文件中。也许你可以删除#ifdef MYTESTCLASS
检查,看看这是否是问题所在。
相关文章:
- 防止在C++中选择错误文件时提升 xml 解析器崩溃
- AMQP-CPP >处理程序中的错误文件描述符
- Xcode OSX上的C++构建失败,出现多个错误文件IO..不可用:在macOS 10.15中引入
- 为什么生成文件返回 g++: 错误: h 文件或目录 make: *** [生成文件:12: 测试] 错误 1?
- xgboost 构建错误:参数包未扩展为"..":
- 在可变参数模板中扩展了错误的包
- 警告:打开错误文件(/build/opencv/modules/videoio/src/cap_ffmpeg_impl.
- Ubuntu C++ 编译器错误: g++: 错误: 文件.cpp: 没有这样的文件或目录
- main.cc:5:30:致命错误:文件夹/file.h:没有这样的文件或目录
- C++ LNK2005"已定义"错误 - 文件引用自身
- C++:模拟餐饮公司计费程序-无法将错误数据输出到错误文件
- 博兰德C++链接器错误c文件包括
- Visual Studio 2015 代码覆盖率错误文件
- 使用system()与Gnuplot进行绘图会导致错误:文件不可读
- 是否存在fseek/ftell可能给出错误文件大小的情况
- g++编译错误.h文件
- c++编译错误:.o文件未找到
- 如何在visual studio 2010 C++中制作带有所需.dll和lib(opencv)文件的.exe文件包
- 打开错误文件的错误消息
- Ndk-build输出添加符号错误.文件格式错误