我有一個C++文件,它會一直向鏈中的四個文件拋出錯誤,而使用#include編譯的每個其他文件都會正常編譯。C++文件不會用某個#include編譯,而所有其他編譯器都可以編譯
它一直給我這種東西。我確定包含文件是好的1.所有其他使用這個相同的文件編譯好,我看了看文件,並沒有問題。
/usr/include/opal/opal/mediafmt.h:305:9: error: expected identifier before numeric constant
/usr/include/opal/opal/mediafmt.h:305:9: error: expected ‘}’ before numeric constant
/usr/include/opal/opal/mediafmt.h:305:9: error: expected unqualified-id before numeric constant
/usr/include/opal/opal/mediafmt.h:308:14: error: bit-field ‘mode’ with non-integral type
很奇怪,因爲它會引發錯誤約5個文件了鏈:
In file included from /usr/include/opal/opal/connection.h:44:0,
from /usr/include/opal/opal/call.h:41,
from /usr/include/opal/opal/manager.h:42,
from /usr/include/opal/opal/endpoint.h:41,
from /usr/include/opal/opal/localep.h:41,
from /home/jonathan/workspace/HHPVideoServer/opal/GstEndPoint.h:12,
from /home/jonathan/workspace/HHPVideoServer/opal/opal-call-manager.h:42,
from ../gui/HHPVideoCodecGui.cc:3:
我檢查,以確保我沒有搞砸任何的#define秒,但,這是唯一的想法我了。有人可以提供我如何跟蹤這個錯誤的好方法嗎?
以下是文件:
http://www.opalvoip.org/docs/opal-v3_9/da/d60/mediafmt_8h-source.html
更新
下面是來自前處理麻煩的線結構。我認爲「0L」是麻煩。
struct H245GenericInfo {
H245GenericInfo() { memset(this, 0, sizeof(*this)); }
unsigned ordinal:16;
enum Modes {
0L,
Collapsing,
NonCollapsing
} mode:3;
enum IntegerTypes {
UnsignedInt,
Unsigned32,
BooleanArray
} integerType:3;
bool excludeTCS:1;
bool excludeOLC:1;
bool excludeReqMode:1;
};
然後
#define None 0L
從 「/usr/include/X11/X.h」 導致0L在從X11 LIB線305
代替無在模式枚舉。其他文件正在編譯的原因是它們並未使用Gtk。有沒有人有解決方案,不涉及我重寫任何lib文件?
解決方案
我只是把高於一切違規的#include。感謝大家的幫助。
我知道你說過這個檔案很好,但是請你用我們的內容來幽默我們。 –
在其中一個文件中查找缺少的分號。 –
對丟失分號的猜測。或者可能缺少一個右大括號。 – Casper