【发布时间】:2014-12-17 10:21:29
【问题描述】:
Qt,它似乎用首字母 Q 命名其他所有东西,这样做:#define signals signals in qobjectdefs.h。
但是,GStream 并不自然地认为signals 是保留字并这样做
struct _GDBusInterfaceInfo
{
/*< public >*/
volatile gint ref_count;
gchar *name;
GDBusMethodInfo **methods;
GDBusSignalInfo **signals; <==================
GDBusPropertyInfo **properties;
GDBusAnnotationInfo **annotations;
};
在gdbusintrospection.h.
我只是假设 Qt 和 GStreamer 不能很好地配合使用。还是有办法解决这个问题?
注意:如果我不#define Q_MOC_RUN,Qt 可以被说服#define signals signals。但这会导致使用
class
{
public:
// stuff
signals:
// stuff
private:
// stuff
};
正如您现在可能已经猜到的那样,我正在尝试从不在身边的人那里接管代码以支持它,而 Google 不是我的朋友:-(
[更新]谢谢,@IpApp 来回提示(这不起作用,唉)。
我得到了别人的密码。显然它是为目标构建的,但从来没有为单元测试构建过,我必须这样做(为什么他混合和匹配,我不知道)。
当我在 Eclipse CDT 中使用 QT_NO_KEYWORDS 时,我收到错误,因为类定义代码不使用 Q_SINGAL(S) - 它使用信号宏(现在定义为信号)来定义某些公共成员。
我不允许修改子系统代码,只是为了模拟它的接口,但我不愿意模拟所有的 Qt 和 Glib,因为努力。
也许有一种方法可以将库用于其中一个或另一个,而不是将它们的目录包含在源路径中?
【问题讨论】:
-
“也许有一种方法可以将库用于其中一个,而不是将它们的目录包含在源路径中?”嗯,是的,你应该始终确保每个编译目标只给出它实际需要的库路径......或者这不是你要问的?
标签: c++ qt gstreamer qtcore qt-signals