Signal unter Windows nicht vorhanden unter Linux schon
-
Hallo zusammen,
ich habe bisher mein Qt QML Projekt unter Linux mit Qt 5.12.4 / 5.14.2 entwickelt und keine Probleme gehabt. Jetzt wollte ich die Windows Anwendung erstellen, habe dazu das aktuelle Qt für Windows geladen und unter Windows 10 installiert.
Beim starten bekomme ich jetzt die Fehlermeldung, dass ein SignalQObject::connect: signal not found in QJsonRpcHttpClient
nicht vorhanden ist.
Woran kann denn das liegen, dass es unter Linux / Android keine Probleme gibt unter Windows aber schon?
Danke für Eure Hilfe.
gruss
martin -
@msauer751 said in Signal unter Windows nicht vorhanden unter Linux schon:
QJsonRpcHttpClient
Das sieht ja auch wie der Name einer Klasse aus.
Wo ist dieses connect, kannst du den Code zeigen? -
Der Aufruf von Connect:
QJsonRpcHttpClient *RpcClient{new QJsonRpcHttpClient(Url)}; QObject::connect(RpcClient, &QJsonRpcHttpClient::messageReceived, std::bind(&CachePrivate::MsgRecieved, this, std::placeholders::_1));
Das Signal ist nicht in QJsonRpcHttpClient definiert:
class QJSONRPC_EXPORT QJsonRpcHttpClient : public QJsonRpcAbstractSocket { Q_OBJECT public: QJsonRpcHttpClient(QObject *parent = 0); QJsonRpcHttpClient(const QString &endPoint, QObject *parent = 0); QJsonRpcHttpClient(QNetworkAccessManager *manager, QObject *parent = 0); ~QJsonRpcHttpClient(); ... }
sondern in der Eltern Klasse QJsonRpcAbstractSocket:
class QJSONRPC_EXPORT QJsonRpcAbstractSocket : public QObject { Q_OBJECT public: explicit QJsonRpcAbstractSocket(QObject *parent = 0); ~QJsonRpcAbstractSocket(); virtual bool isValid() const; void setDefaultRequestTimeout(int msecs); int getDefaultRequestTimeout() const; Q_SIGNALS: void messageReceived(const QJsonRpcMessage &message); ... }
Noch zur Info: Das Connect habe ich im Konstruktor einer Private Implementierung mittels d-ptr.
Ich hoffe ich habe sonst nichts weiter vergessen.
gruss
martin -
@msauer751 Was passiert wenn du QJsonRpcHttpClient durch QJsonRpcAbstractSocket ersetzt im connect?
Es könnte sein dass der Compiler unter windows das irgendwie nicht auflöst - welchen Compiler benutzt du unter Windows? -
Als Compiler verwende ich den MinGW 7.3-64.
QObject::connect(RpcClient, &QJsonRpcAbstractSocket::messageReceived, std::bind(&CacheListePrivate::MsgRecieved, this, std::placeholders::_1));
Damit kommt die selbe Fehlermeldung. Was mich wundert, ist, dass meine selbst erstellten Klassen ohne diesem Fehler funktionieren.
gruss
martin