sql >> Database >  >> RDS >> PostgreSQL

QT5:Kan psql-stuurprogramma niet laden in Windows

Hoogstwaarschijnlijk slaagt het er niet in om de qsqlpsql.dll . dynamisch te linken bestand wanneer het LoadLibrary . aanroept erop nadat uw programma dat stuurprogramma heeft aangevraagd. LoadLibrary geeft dezelfde foutcode terug voor wanneer de doel-DLL ontbreekt als voor wanneer een van de DLL's waarvan de doel-DLL afhankelijk is, ontbreekt of niet kan worden geladen . Dus Qt krijgt mogelijk de foutmelding "bibliotheek niet gevonden" en gaat ervan uit "oh, het Pg-stuurprogramma mag niet in deze Qt-build zitten", waar het in feite aanwezig is en niet kan worden geladen vanwege afhankelijkheidsproblemen, bibliotheekcompatibiliteitsproblemen, enz.

Om te bepalen waarom het niet laadt, kun je, zoals Frank Osterfeld voorstelde, een tool gebruiken zoals Dependency Walker (depends.exe ) . Als u 32-bits code compileert op een 64-bits machine, wilt u de 32-bits afhankelijkheidsloper gebruiken.

Het is vrij waarschijnlijk dat het mislukt omdat er een afhankelijkheid is van qsqlpsql.dll ontbreekt - ofwel libpq.dll , of een van de bibliotheken die libpq bouwen vereist. Dependency walker helpt dit te isoleren. Het is ook mogelijk dat u een 64-bits libpq.dll . probeert te laden in een 32-bits programma, of omgekeerd.

Mogelijk vindt u het ook informatief om uw programma uit te voeren terwijl Process Monitor het traceert. Dit zal veel details opleveren over onder andere welke bestanden het probeert te openen / onderzoeken, en kan helpen bij het opsporen van zaken als onverwacht PATH problemen.

Als je nog steeds vastzit, is er altijd de mogelijkheid om door te gaan met een debugger.



  1. Hoe json-array filteren op elke geretourneerde rij?

  2. krijg mime-type afbeelding

  3. Vergelijk rijen in dezelfde tabel in mysql

  4. Kan ik een berekend veld opnieuw gebruiken in een SELECT-query?