2012-01-12 31 views
1

我試圖用XCode在Mac Lion(10.7)上編譯我的C++應用程序時出現錯誤。 編譯器抱怨cdefs.h(包括syslog.h)中的一行,並顯示錯誤expected unqualified-idstdlib cdefs.h中的C++錯誤?

#if defined(__cplusplus) 
#define __BEGIN_DECLS extern "C" { //<--- Error in this line 
#define __END_DECLS } 
#else 
#define __BEGIN_DECLS 
#define __END_DECLS 
#endif 

這是怎麼回事?

+0

它是唯一的錯誤?編譯器不顯示任何其他消息嗎? (警告或其他)? – 2012-01-12 18:50:56

+2

你確定錯誤在那條線嗎?如果是這樣,你確定沒有錯誤(大括號沒有關閉,在類尾部缺少分號等)_上面_你包括文件嗎? – 2012-01-12 18:51:25

+0

'cdefs.h'通過包含的'syslog.h'包含在內。 '__BEGIN_DECLS'行處的'syslog.h'存在另一個錯誤 - 相同的錯誤消息。如果我在我的項目中註釋掉'#include ',一切都很好。 – gorootde 2012-01-12 18:55:32

回答

2

找到它們了! #include <syslog.h>後面有一些奇怪的隱形字符。所以註釋掉這條線就解決了這個問題,因爲這個字符也被註釋掉了。 結論:你不應該複製粘貼在網上找到的所有東西。

+0

我錯過了包含在多個文件中的頭文件的分號... – Paschalis 2015-08-19 10:07:23

相關問題