2016-12-16 187 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:

  • 以雙下劃線的任何位置被保留的標識符;
  • 標識符以下劃線開頭,後面跟着大寫字母 字母被保留;
  • 在全局命名空間中保留以下劃線 開頭的標識符。