我在C++ 11模式下編譯應用程序時出現問題,只需在dbus庫的頭文件中添加一個空白字符即可解決問題。是否可以向系統庫頭添加一個空格?
如果我這樣做 - 當我嘗試構建的庫(使用空白頭文件)嘗試鏈接到dbus(在頭文件中沒有空白的情況下構建)時,它是否會破壞?
特別地,DBUS-protocol.h包含此行:
#define DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE "<!DOCTYPE node PUBLIC \""DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER"\"\n\""DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER"\">\n"
其中,在C successfuly編譯++ 11模式空白必須被插入如:
...PUBLIC \"" DBUS_INTROSPECT...
多少我們真的可以在不破壞兼容性的情況下更改頭文件嗎? (我知道qt ABI兼容性指南,但我不認爲它解決了我的特定問題)
這很難說。我通常會認爲在頭文件中添加一個空格將不會執行任何操作,但是您說它可以解決您的問題。發佈代碼(在您更改之前和更改之後),然後我們會理解您要求達到足夠好的級別,以便能夠回答。另外,你的問題被標記爲linux和dll。在linux下沒有dll。 – utnapistim
現在添加行 – Zeks
編輯之後,是的,在C++ 11中需要空白,並且不會破壞任何東西。 – Simple