[SOLVED] Qt 5.0.1 - Windows: Upgrade broke application + "libstd++-6.dll" Error "__gxx_personality_v0"
-
There was recently a very similar post regarding this issue, however that user was able to solve his issue by re-installing. Reinstall did not do any just for me. I have upgraded my Qt installation from 4.8.4 (minGW) to 5.0.1 (minGW). I have updated all of my environment variables to reflect my new install directory, but I am still having issues.
Issue #1:
When I open Qt Creator 2.6.2 (bundled with 5.0.1) I receive the following message:
qmake.exe - Entry Point Not Found
"The procedure entry point __gxx_personality_v0 could not be located in the dynamic link library libstdc++-6.dll". I installed 5.0.1 on another machine and I am receiving the same error.Issue #2:
Eventually after clicking out of the "libstdc++-6.dll" error multiple times, I can load Qt Creator. When I try to run my program using the 5.0.1 toolchain I receive the following error:@ASSERT failure in QVector<T>::at: "index out of range", file D:\Qt\Qt5.0.1\5.0.1\mingw47_32\include/QtCore/qvector.h, line 348
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.@Everything was okay prior to the update. I know "If it isn't broken, don't fix it" - my motivation lies in using QSerialPort with 5.0.1. A few of the functions apparently do not work as intended in 4.x, but are working under 5.0.1.
-
QtSerialPort is really great, I can confirm that :)
I would suspect there is binary incompatibility between your MinGW versions. Qt 5.0.1 is built with GCC 4.7.2, which has changed it's binary layout slightly. You probably need to update MinGW, and then do a full rebuild of your project (clean, run qmake, rebuild).
-
Thank you very much for the timely response. When I installed Qt 5.0.1, I installed the version packaged with MinGW 4.7. Previously I was using MinGW 4.6, but ditched that installation. All environment paths have been upgraded to the new installation.
C:\Users\XXXX>gcc --version
gcc (Built by MinGW-builds project) 4.7.2If I am using the MinGW distro that came packaged with Qt, should I really need to rebuild Qt? On my personal project level I most certainly had to [Clean, qmake, rebuild]. I had to do that for QSerialPort after adjusting my .pro (Qt4 requires config+=serialport qt5 is happy with qt+=serialport).
Ultimately, my largest concern is the fact that I am getting that particular error when opening Qt Creator. What might you suggest for correcting that problem?
-
No, a rebuild of Qt should not be required. Somehow something is broken. Check "checksums":http://origin.releases.qt-project.org/qt5/5.0.1/md5sums.txt for downloaded installer, maybe?
-
Out of desperation, I uninstalled every Qt related install on my machine. Deleted the installer and downloaded the installer again ["Qt 5.0.1 for Windows 32-bit (MinGW 4.7, 823 MB)"]. Before touching anything I opened Qt Creator, it opened fine. I was unable to run my program due to missing support for QMYSQL and QSerialPort.
After building QMYSQL driver and QSerialPort, I opened Qt Creator and the error is back! My application seems to be running now, but the following error has returned whenever I open Qt Creator:
qmake.exe – Entry Point Not Found
“The procedure entry point __gxx_personality_v0 could not be located in the dynamic link library libstdc++-6.dll”. I installed 5.0.1 on another machine and I am receiving the same error.Why would my building of QSerialPort or the QMYSQL driver affect Qt Creator or "libstdc++-6.dll"?
-
I downloaded the standalone Qt Creator 2.6.2 installer. This install runs fine and on launch of Qt Creator there is no mention of the error.
However still if I run using the Qt 5.0.1 bundled Qt Creator I still receive:
qmake.exe – Entry Point Not Found
“The procedure entry point __gxx_personality_v0 could not be located in the dynamic link library libstdc++-6.dll”. I installed 5.0.1 on another machine and I am receiving the same error.This concerns me moving forward.
-
Hallo.
I would repeat this:
[quote author="wakeuky" date="1362058020"]Out of desperation, I uninstalled every Qt related install on my machine. Deleted the installer and downloaded the installer again ["Qt 5.0.1 for Windows 32-bit (MinGW 4.7, 823 MB)"]. Before touching anything I opened Qt Creator, it opened fine. I was unable to run my program due to missing support for QMYSQL and QSerialPort.
After building QMYSQL driver and QSerialPort, I opened Qt Creator and the error is back!
[/quote]And check with Dependency Walker and Process Explorer where is it getting its libs in each case, i.e., before building QMYSQL driver and QSerialPort (when it gives no error) and afterwards. I'd also take note of the dates on the files, to check if anything is getting changed.
The error message is clearly an incompatibility between compiler/library versions. I've even had that when mixing libs built with mingw.org's and mingw32's GCCs, even though GCC had the same version.
-
pcaetano, Thank you for your suggestions. I reinstalled everything again. I opened QtCreator.exe in dependency walker and noted the Qt resources. After building the QMYSQL driver and QSerialPort everything still operated fine this go-around. While I am excited that it seems to be operational now, I am a little bummed that I could not investigate the resource mismatch a little further. I had not considered using the Dependency Walker for such an exercise, but will remember your excellent recommendation in the future.
For now, it looks like the solution may be uninstall - reinstall until it works, ha!