Qt installation (with vs10)
I'd like to add Qt 4.7 to VS2010 with the Qt add in 1.1.7.
I've already installed VS2010 and Qt and the add in.
When I make a new project, the compilation ends correctly but the executable doesn't work.
The error that is displayed by Windows is : "this application could not be launched because the configuration of this application is incorrect". Reinstalling the application could solve the problem."
I didn't make any special configuration.
What did I miss during the installation/configuration process ?
Sounds like some DLLs are not found. I must copy the Qt DLLs (QtCore.dll, QtGui.dll, etc.) into the directory where my compiled EXE is. Otherwise I cannot start my application.
(I'm using VS 2008)
okay, where can I find these dlls?
Guest last edited by
[quote author="jigfjifd" date="1287637858"]okay, where can I find these dlls?[/quote]
chk the bin folder under Qt
I've copied All the dlls (including QtGuid4.dll) of the bin folder into my executable directory, it's still not working.
The same error appears
Then you should try the dependency walker (depends.exe) and look if all needed DLLs are found.
I saw the link you provided and I'm downloading and installing the software at the moment. I'll try to find out how it works, but it seems quite complicated for my situation.
I mean, I probably am not the only one to use Qt with VS2010, am I??
My situation is quite simple and quite common, I really don't understand what's wrong and why it doesn't work... :(
If I understand it correcly, it would seem that the executable is looking for
but doesn't find them...
Unfortunately, developing and running software on Windows is sometimes quite complicated. Just google for DLL hell and manifest fiasco :-/
For the dependency walker:
- Put it into the same directory where your exe is
- start depends.exe
- from the file menu choose open and select your exe
There is a tree on the left side that shows you all of the DLLs that the exe needs, if you expand the entries further you can see what DLLs are needed by the DLLs themselves etc. Missing DLLs are marked and listed in the bottom lists too.
I have posted right before you, you probably didn't notice.
By the way, I'm not sure of these results, because when I open 'depends.exe' itself (with dependency walker) it also says that WER.DLL IESHIMS.DLL and EFSADU.DLL are missing, but this one executable works properly...
It seems that you have installed the Qt version for Visual Studio 2008. Visual Studio 2010 should need MSVCP100D.DLL and MSVCR100.DLL.
Missing IESHIMS.DLL and WER.DLL is not critical. They are not found on my system too.
I don't know about EFSADU.DLL.
So what exactly do I need to download ?
The problem is that I don't see anything that says explicitly vs2010 on their site.
There are no prebuilt binaries for VS 2010. You must download the source code and compile the libs yourself.
oh. And how do I do that ? (is there a site that explains it in detail, or could you, please?)
Is there any chance you could also tell me why this is needed ? I mean, what changes between VS2010 and 2008 that requires this ? My hardware is still the same, so why shouldn't it work?
You can download the sources from "ftp://ftp.trolltech.com/qt/source/qt-everywhere-opensource-src-4.7.0.zip":ftp://ftp.trolltech.com/qt/source/qt-everywhere-opensource-src-4.7.0.zip
For the compilation and installation follow the instructions "here":http://qt.nokia.com/doc/4.7/install-win.html
For the reason why there is no prebuilt version for VS 2010: I think VS2010 is just too new. Supporting a new compiler always takes some time (setting up things, testing, and so on).
The DLLs of the two VS versions are just not compatible. It would go beyond the scope of this post to explain why, Aunt Google will tell you more ;-)
ok, so I downloaded the .zip and unzipped it in C:\Qt\4.7.0.
I added this path to the path environment variable.
In my situation, do I need to add other things to 'path' ? ("You may also need to ensure that the locations of your compiler and other build tools are listed in the PATH variable. This will depend on your choice of software development environment.")
I don't understand the note below this statement either.
Then I opened a visual studio command prompt. 'configure' doesn't work there.
Should I write nmake right away?
Normally, configure.exe (with some switches, if needed) works just fine. Did you call it via
There is a configure (without .exe) which happens to be a unix shell script, and that does not work on windows, of course :-)
Calling nmake without running configure.exe before will not work, as there are no makefiles to use.
I've tried everything I could think of, including
after or before the 'cd', none of it works.
So do I need to add something else to 'path' ?
Do I have to do something related to this note : "Note: If you don't use the configured shells, which is available in the application menu, in the Open Source Versions of Qt, configure requires that sh.exe is not in the path or that it is run from msys. This also goes for mingw32-make." ?
If you call @configure.exe -help@ there should at least be some output on the shell, regardless of any paths etc.
No, there's nothing.
it says 'configure.exe' is not recognized as an internal or external command, an executable program or a file of commands.
I have to type this in the visual studio command prompt, right?
(if I type this in cmd.exe, it gives the same result).
You must cd into the directory where configure.exe lives or call it via its complete path.
okay, I've made a search in my computer and it is in
sorry. I thought it was a Microsoft windows command or something, so I didn't try to find the executable before.
So what do I need to do now exactly?
You haven't answered me regarding the path variables and the note, both of which are mentionned in the website you gave me.
I don't know for the note. If you don't have MinGW or a bash or such installed, you probably don't need to take care of it.
I never set a PATH variable when I compiled on Windows. Just start the Visual Studio Command prompt and enter:
And then have a cup of coffee or better go for lunch or dinner - it takes a looooong time until everything is compiled :-)
so I typed it and here is the result :
Unable to detect the platform from environment. Use -platform command lineargument or set the QMAKES
PEC environment variable and run configure again
See the README file for a list of supported operating systems and compilers.
Usage: (<<followed by hundreds of lines explaining its complicated usage>>)
The default options seem to have failed ("Unable to detect the platform") and the usage of this executable seems quite complicated, so maybe you can help me once more :)
@.\configure.exe -platform win32-msvc2010 @
thanks, it's working so far.
Seems like you started cmd.exe, you must start the Visual Studio Command Prompt (in VS2005/2008 it's somewhere in the Start Menu / All Programs / MS Visual Studio 200x / as far a I remember); you'll have to look around...
yes you're absolutely right, I noticed a few seconds later and edited my post. Sorry for the stupid question
the compilation is done (finally!).
What do I have to do now to link the framework to the vs add in, and are there any files that I don't need anymore ?
The VS addin does work independently from your Qt version. Just run the installer. You then must make your self compiled Qt visible to the plugin, there is an entry in the new Qt menu of Visual Studio - just look around. Some more info on the addin can be found "here":http://doc.qt.nokia.com/vs-add-in-1.0/index.html
Just play around :-)
Can you give me a more detailed answer please ? I've been trying to look and play around but with no result.
- I don't really understand why you ask me to run the 'installer'.
I thought that "That's all. Qt is now installed.", once I have done nmake.
- I don't really understand either how to build a qt application from vs, it still seems not to be working.
- Finally, I didn't get which files or directories are part of the installation/compilation process and can be deleted.
- I don't really understand why you ask me to run the 'installer'.
I have added the path C:\Qt\4.7.0 to the qt options in the add in.
The qt keywords are not recognized by VS.
What I meant is that you should run the installer for the Visual Studio AddIn, which is completely independent from your Qt library installations (may it be a precompiled or a self compiled one). You can even have multiple versions of the Qt libraries installed and choose which one will be used for your project.
As far as I understood from your previous posts, you should add C:\Qt\4.7.0\qt-everywhere-opensource-src-4.7.0 to the addin. It's in "Extras" menu (German version, the menu between "Debug" and "Windows"), then "Options...", then choose Qt.
Then you should follow the steps of the Getting Started guide of the "VS Addin Documentation":http://doc.qt.nokia.com/vs-add-in-1.0/index.html
I've changed C:\Qt\4.7.0\qt-everywhere-opensource-src-4.7.0 to C:\Qt\4.7.0.
I've added C:\Qt\4.7.0 to the add in (which means that in the qt options of the vc addin, in the versions tab, I have a line called : version 4.7.0, path C:\Qt\4.7.0)
It's still not working.
The first line of my program is #include <QtGui/QApplication>, but it says the file can't be found.
Yet I have a file called qapplication.h in C:\Qt\4.7.0\include\QtGui, which contains #include "../../src/gui/kernel/qapplication.h", and I have indeed a file called qapplication.h in C:\Qt\4.7.0\src\gui\kernel.
Did you set up your project using the wizard from "new project" / Qt appplication? If not you must add :\Qt\4.7.0\include to the include path of your project. The wizard adds that for you automatically, AFAIK.
The project had been created with the wizard before the framework compilation which is probably why it didn't work.
I created a new project, and it works now.
Thanks a lot for your help.
I have one last question that hasn't been answered yet. Which files/directories were only part of the compilation process and can hence be deleted ?
For the previously created project: As far as I know you can set the Qt version to be used afterwards, that should set the appropriate include paths.
You probably can delete the .cpp files. All of the .h files are definitely needed. But I won't do that. The disk space you gain is not that much and it's not worth the effort, IMHO. If you really want you can delete the examples subdir, but I won't do that either, because it's a good source to sneak how the trolls do certain things :-)