Using Qt with Intel C++ Compser 2015 and VS 2013
Hello, I am a long-time user of Qt 4.6.2 with VS 2008 and the Intel C++ compiler integration. I'm now upgrading to VS 2013 with Intel C++ compiler 2015 integrated into VS. My old Qt 4.6.2 won't compile with the latest Intel C++ compiler. I was able to build Qt 4.8.6 successfully, only to discover that the Qt VS add-in 1.1.11 won't work with VS 2013. That is close to being a deal-breaker.
So now I am looking at the big upgrade to Qt 5.5.0 and I'd like to know: given that I'm using the Intel C++ compiler 2015, do I need to create my own build of Qt using that compiler? Or can I use the installer labeled MSVC 2013?
Hi and welcome to devnet,
You need your own build. Windows is a bit of a special case, the MSVC compilers themselves are not compatible one with the other e.g. you can't use a library built with MSVC 2010 with MSVC 2013.
Hi, thanks very much for your reply. I've made some progress with creating Qt 5.5.0 from source, but have now run into several problems, and I would really appreciate some help from anyone who can provide any insight.
So after several tries I managed to get through the configuration and nmake build of Qt 5.5.0 on my Win 8.1 x64 system using VS 2013 and the Intel 2015 C++ compiler update4 with the following configure options:
I have an environment variable QTDIR=C:\Qt\5.5.0 pointing to my installation, and C:\Qt\5.5.0\qtbase\bin is on my path.
However, unfortunately, after nmake completes, multiple problems emerge.
When I try to run any Qt app (e.g. designer.exe or assistant.exe) they terminate immediately, as usual on WIn 8.1 with no error message. I tried running Dependency Walker x64 on them and found the following four errors listed in red:
GetProcAddress(0x00007FFA7C1B0000 [KERNEL32.DLL], "GetFileInformationByHandleExW") called from "MSVCR120.DLL" at address 0x00007FFA6190E838 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFA7C1B0000 [KERNEL32.DLL], "SetFileInformationByHandleW") called from "MSVCR120.DLL" at address 0x00007FFA6190E856 and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryW("C:\windows\system32\wintab32.dll") returned NULL. Error: The specified module could not be found (126).
Second chance exception 0xC0000005 (Access Violation) occurred in "QT5GUI.DLL" at address 0x00007FFA598A50F5.
Since MSVCR120.DLL was mentioned, I tried uninstalling and reinstalling the x86 and x64 versions of the VS 2013 redistributables, but this did not fix the problem.
In ran the installer for the VS add-in 1.2.4 and it completed with no errors. I started up VS 2013 and all the Qt docs are installed and there is a Qt 5 menu.
However, when I choose the "Qt Options" entry from this menu, an error message appears saying "The following error occurred: These Qt version are inaccessible: 5.5.0 in C:\Qt\5.5.0. Make sure that you have read access to all files in your Qt directories". In the "Qt Options" dialog that pops up, my installation Name and Path are listed but the "Default Qt/Win version" combo box has no entries in it to choose.
When I try to create a new project of type "Qt5 Application", several error messages come up that say "Unable to find Qt build".
When I choose "Launch Designer" from the Qt5 menu, an error message pops up that says "qmake.conf not found".
I would appreciate any ideas regarding how to get past these problems!
Don't build Qt in environment that contains Qt binaries in the PATH, you'll end up with some bad side effects like running the wrong qmake.
You should do a clean build ensuring that you don't have anything related to another Qt installation in your PATH or other environment variable.
Thanks for your reply.
This is a clean system with no other Qt builds or binaries on it other than the 5.5.0 source tree that I built. The only environment variables are QTDIR that points to the root of this tree in C:\Qt\5.5.0, and an addition %QTDIR%/qtbase/bin to the path. So do I understand you correctly that I should remove those entries? My old 4.6.2 installation (on another system) wouldn't build without these.
Yes, better to remove them. QTDIR is not used anymore in the build process in Qt 5
OK, I rebuilt Qt 5.5.0 after removing the environment variables, but it unfortunately did not solve the problems I described.
I was ultimately able to get the VS addin 1.2.4 working in VS 2013 by specifying the Qt installation as being at C:\Qt\5.5.0\qtbase instead of just C:\Qt\5.5.0. I was able to create a simple Qt GUI program and run both Debug and Release builds.
But the remaining problem is that all Qt tools like designer, assistant, and linguist all crash as soon as they are started. In each case the event log holds an entry like this,
Faulting application name: designer.exe, version: 126.96.36.199, time stamp: 0x55d4a1df
Faulting module name: Qt5Gui.dll, version: 188.8.131.52, time stamp: 0x55d48d34
Exception code: 0xc0000005
Fault offset: 0x00000000006850f5
Faulting process id: 0x5b8
Faulting application start time: 0x01d0daadb7408ac1
Faulting application path: C:\Qt\5.5.0\qtbase\bin\designer.exe
Faulting module path: C:\Qt\5.5.0\qtbase\bin\Qt5Gui.dll
Report Id: f504ee37-46a0-11e5-8267-8cdcd42c37a6
Faulting package full name:
Faulting package-relative application ID:
So there is still some kind of issue with my build, though my simple Qt GUI project was evidently able to use Qt5Gui.dll without a problem.
Any idea what could be causing this? Is there a problem with the configure options I chose? Or with the modifications I had to make to qcompilerdetection.h to get the build to work?