Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

VS2010 problem



  • This may be off-topic, but maybe there is a quick answer to my problem.

    I qmake my vcapp project, which generates a .vcproj Visual Studio C++ 2008 project.

    I open this with my newly installed VC2010, it converts it to a .vcxproj Visual Studio C++ 2010 project and after some needed changes in the project settings, it builds. The Release app runs fine.

    However, I cannot debug it since it cannot find VC90.DebugCRT. This is usually a problem if you distribute a Debug app version outside the development system where VC is istalled, but this is not the case here so there should not be a problem. What did I miss?

    Bengt



  • You missed VC90.DebugCRT I think :)
    Just go into the project properties and choose the v100 toolset instead of v90. You can find it in the general tab in the project settings.



  • Checked that, it says v100.

    I begin to suspect the intermediate manifest file.
    Look:
    @ <dependency>
    <dependentAssembly>
    <assemblyIdentity type='win32' name='Microsoft.VC90.DebugCRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
    </dependency>@

    What is the origin of this content? A setting in the project, or is it generated by qmake?



  • I have no such an XML tag in my vs2010 projects also in those were converted from previous versions. Try to delete it.



  • Problem is that it is generated at every build.

    In I have Project Properties/Linker/Manifest file/Generate manifest = yes.

    Is it ok to turn this off in Windows 7?

    I remember it was necessary under Vista, I struggled a lot with that.



  • NO you should have manifest file, but you don't have to have this dependency. Check "Manifest tool" item in properties. There is an option for suppressing manifest dependency.



  • Thanks, but the connection between your advice and the entries in the Manifest Tool is not transparent to me. Could you be more specific?



  • Ok, you have some manifest dependency which is generated during each VS build. "Properties/Manifest tool" has field named "Suppress dependency element" also some field about dependency exists in "Properties\Linker\Manifest". I don't know is it solution or not but if it isn't may be you will attach your project here and I'll try to correct it by myself?



  • Thanks. I realize I tried to answer your last message by looking at VS2008, not VS2010, not so productive. I will check tomorrow, I have my W7/VS2010 at my work.

    Sorry.



  • Some news: I disabled manifest generation for my project, and now I got a related error for QtGuid4.dll:

    @Activation context generation failed for "C:\Qt\4.6.3\bin\QtGuid4.dll". Dependent Assembly Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" could not be found. Please use sxstrace.exe for detailed diagnosis.@

    Does this mean that "http://qt.nokia.com/downloads/windows-cpp-vs2008" as is will not be usable with vs2010?

    Do I have to rebuild Qt with vs2010?



  • Hm, actually you shouldn't use VS2008 libs for v100 toolset. I see two variants:

    1. Install vs2008 on the target machine, switch properties in project to use v90. You'll have VS2010 as your primary IDE still but with v90 toolset. Bad variant I believe.
    2. Rebuild Qt with VS2010 and use it without any troubles. It's more time consuming but more righteous way.


  • I tried to rebuild Qt using VS2010, but it failed in javascript.

    Has anyone done this before? Any special config settings?





  • Ok, thanks a lot for that link!
    I fixed the errors in StructureTransitionTable.h x 2, did configure with no switches and nmake in the VS2010 command window at C:\Qt\4.6.3.
    It took a few hours to build, but now all is working as intended.

    Problem solved.


Log in to reply