yan*_*nce 3 c++ macros compiler-errors header include-guards
我将#ifndef ..#define ..#endif添加到我项目的文件中,编译器失败了.一旦我删除它或在定义中添加任何其他名称它编译好.可能是什么问题呢?
听起来像文件已经声明,但我不知道在哪里.我很好,只是删除它,但我真的想知道为什么会发生这种情况.
error: expected class-name before ‘{’ token
error: ‘QDesignerFormEditorInterface’ has not been declared
Run Code Online (Sandbox Code Playgroud)
还有其他一些错误.
我实际上是在使用Qt的一个例子,"Custom Widget Plugin Example".
不同之处在于我使用自己的类作为自定义小部件(.h,.cpp和.ui文件).
它可能与包含2的文件有关,尽管这就是示例的实现方式.
小智 29
这个宏被用作包含守卫吗?如果是这样,听起来你复制了其他地方使用的名称.当人们不考虑包含守卫必须具有的范围时,这是一个常见问题 - 您应该在其中包含比文件名更多的信息.
包括警卫目标:
错误包括防护名称(对于文件"config.h"):
CONFIG_H
_CONFIG_H,CONFIG__H,CONFIG_H__,__CONFIG_H__,等.
PROJECT_CONFIG_H
好包含防护名称(对于文件"config.h"):
PATE_20091116_142045
<last name>_<date>_<time>INCLUDE_GUARD_726F6B522BAA40A0B7F73C380AD37E6B
| 归档时间: |
|
| 查看次数: |
3714 次 |
| 最近记录: |