我在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