Seite 1 von 1

"cannot mix incompatible qt libraries"

Verfasst: 20. September 2010 21:34
von benicz
hallo leute!

im netz finde ich nur wirrwarr, und hier waren's ganze zwei threads, deren lösungen bei mir aber nicht zutreffen.

und nach mehreren stunden gesuche, gegoogle und gebastel muss ich euch mal wieder bitten, mir beim knoten-lösen zu helfen ;-)

also:
ich habe einen thread

Code: Alles auswählen

Engine::Engine()
{
		socket_out = new QUdpSocket(this);
		socket_out->open(QIODevice::ReadWrite);
}

void Engine::run()
{

while (1)
	{
	if (input_vorhanden())
        	input_parsen();
	usleep(1);
	}
}
ob die lösung mit while(1) und sleep() elegant ist, sei hier mal nicht thema ;-)
den socket anstelle vom konstruktor in run() zu erzeugen hilft auch nicht.

im laufe von input_parsen() wird dann ggf. folgende funktion aufgerufen:

Code: Alles auswählen

void udp_Send(u08 ip_num, u16 dstPort, u16 len, u08* data)
{
	QHostAddress host;
	host.setAddress("192.168.0." + QVariant(ip_num).toString());
	socket_out->open(QIODevice::ReadWrite);

	[quote]socket_out->writeDatagram((char*)data, len, host, dstPort);[/quote]
}
ausgabe der anwendung dann:

Code: Alles auswählen

Cannot mix incompatible Qt libraries
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.
entferne ich die zeile
socket_out->writeDatagram((char*)data, len, host, dstPort);
, dann läuft alles rund!

ich habe allerdings nur ein einziges Qt installiert, keine updates gezogen, und im PATH habe ich nachgeschaut, da ist von Qt keine spur!?

im "projekt" (links, 5ter knopf von oben, under "debuggen") steht bei qt-versions-verwaltung nur die benutzerdefinierte drin, bei "Qt aus PATH" steht <nicht gefunden>.

ist da was grundlegend faul, und ich hab' die ganze zeit nur glück gehabt?! :-D

zerschießt mir der socket den thread?
was ist das mit der parameterübergabe an C?
ist das casten nach char* doof?
sollte ich den socket lieber als member von Engine haben? (dann muss ich an anderen stellen neue einbauen...)

ich halte jetzt mal meinen kopf in den froster ;-)

danke schonmal!!

Verfasst: 23. September 2010 16:13
von benicz
so, hat sich erledigt.
es waren irgenwelche reste von was-weiß-ich drinn, die ein clean und qmake nicht wegbekommen hat.
alles bis auf cpp, h und projekt gelöscht, und es ging!