Qt, который, кажется, называет все остальное с начальным Q
, делает это: #define signals signals
в qobjectdefs.h
.Qt #define «сигналы» столкновений с GStreamer (gst)
Однако GStream, не естественно, не представляет signals
быть зарезервированное слово и делает это
struct _GDBusInterfaceInfo
{
/*<public>*/
volatile gint ref_count;
gchar *name;
GDBusMethodInfo **methods;
GDBusSignalInfo **signals; <==================
GDBusPropertyInfo **properties;
GDBusAnnotationInfo **annotations;
};
в gdbusintrospection.h
.
Я просто предполагаю, что Qt и GStreamer не играют хорошо вместе, или есть способ обойти это?
Примечание: Qt можно уговорить до #define signals signals
, если я не #define Q_MOC_RUN
. Но это приводит к проблемам с классами, которые используют
class
{
public:
// stuff
signals:
// stuff
private:
// stuff
};
Как вы уже догадались, что я пытаюсь взять код от кого-то, кто не вокруг, чтобы поддержать его, и Google не мой друг :-(
[Update] Спасибо, @IpApp сюда кончике (который не работает, увы).
Я дал чужой код. по-видимому, построить для цели, но никогда не был построен единичный тест, и я должен это сделать (почему он смешал & соответствовал, I d o не знаю).
Когда я использую QT_NO_KEYWORDS в Eclipse CDT, я получаю ошибки, поскольку код определения класса не использует Q_SINGAL (S) - он использует макросы сигналов (которые теперь определены как сигналы) для определения определенных публичных элементов.
Мне не разрешено изменять код subsytsem, просто чтобы издеваться над его интерфейсами, но я не хочу издеваться над Qt & Glib, из-за усилий.
Возможно, есть способ использовать библиотеки для одного или другого, вместо того чтобы включать их каталоги в исходный путь?
«Возможно, есть способ использовать библиотеки для одного или другого, вместо того чтобы включать их каталоги в исходный путь?» Ну да, вы всегда должны убедиться, что для каждой цели компиляции заданы только пути к библиотеке, которые ей нужны ... или это не то, что вы просите? –