2016-12-16 188 views
0

头1中 “没有指定类型”:fml32.h编译错误的代码的编译

#ifndef TMENV_H 
#include <tmenv.h> 
#endif 

_TMIFML32 extern  char *Femsgs32[]; 

标题2:tmenv.h

#ifndef TMENV_H 
#define TMENV_H 1 

#define _TMIFML32 
#endif 

我试图编译一个包含“fml32.h”的.cpp文件。这是从fml32.h中抛出一个错误:

error: '_TMIFML32' does not name a type 

TMENV_H没有在任何地方定义。试图从标题2发表评论#ifndef TMENV_H及其,因为我怀疑控件未达到#define _TMIFML32。但仍然是同样的错误。任何人都可以帮忙吗?会很感激。

+0

什么让你确定“TMENV_H没有在任何地方定义”? – Ap31

+0

'tmenv.h'包含'fml32.h'吗? –

+3

'#ifndef TMENV_H'所属的唯一位置就是*'tmenv.h'中的头文件*。为什么不(a)在'fml32.h'中删除一个,并且(b)打一个'#error这个更好的puke' *在* tmenv.h'的头文件中,然后编译并查看它是否跳转。如果没有,那么其他人已经定义了这个宏,或者那个头不是你正在使用的那个。 – WhozCraig

回答

0

也许你应该试着把你的头部名称放在“”(“localheader.h”)中,如果它在本地目录中的话。 (当然,这应该是一个评论)。


顺便说一句,根据cppreference:

  • 以双下划线的任何位置被保留的标识符;
  • 标识符以下划线开头,后面跟着大写字母 字母被保留;
  • 在全局命名空间中保留以下划线 开头的标识符。