Problems with side by side dependencies with Qt 5.2.0 64bit on Windows 7
-
Well, I found that if I change the manifest assembly information in the exe to be amd64 the app will run.
So the issue is why does the x86 thing get into the manifest file? Can someone explain how that is done in Qt. Is it coming from the config file for this platform?
-
The manifest is generated by Visual Studio, not Qt. You may need to check your Visual Studio settings.
Try asking at http://social.msdn.microsoft.com/Forums/ for clues.
-
I don't use VS directly I build through Qt Creator so I guess it is telling VS to do through the make files?
-
Can you show your pro file ?
And your Kit settings ? -
My Pro file looks like this. I can't show you the actual file names so I have removed them.
How can I best show you the kit settings that you want to see?
@
QT += core gui widgets svg xml opengl printsupportTARGET = MyApp
TEMPLATE = appRESOURCES += MyApp.qrc
the application icon for Windows
win32 {
RC_FILE += MyApp.rc
}the application icon for the Mac
macx {
ICON = MyApp.icns
}SOURCES +=
my sources here
...
...HEADERS +=
my headers here
...
...OTHER_FILES +=
MyApp.pro.userFORMS +=
my forms here
...@
-
OK guys, I have an update on this issue. Basically I have stopped the linker making a manifest for now. This enables me to run the application and get on with developing it. I will sort out the manifest issue later when I want to actually deploy it.
What I don't yet understand is why the x86 dependency appears in the manifest. I am assuming there is something in one of the headers that triggers it but I might be wrong. I will keep looking into this.
For the moment I am not seeing any x36 dependencies when I look at the executable with the dependency walker. However, I do get the dependency appearing in the manifest if I turn it on.
If anyone has any idea what is going on here please let me know.
Thanks to all for your interest in my issue, I much appreciate it.
-
One thing is puzzling me, why do you MyApp.pro.user in OTHER_FILES ?
-
Good point. I did not put it in there myself I think it was put in there by Qt Creator at some point in time so I assumed it is a required thing.
Should I remove it?
-
This file is generated by Qt Creator with the settings you are using for the project and can change from one version to another so unless you start fiddling with it manually you should remove that line from your pro file.
If you are using a version control system like git, don't commit it there as other user will end up using your settings rather than generating their own.
-
OK, thank you for the advice I will remove it.
Do you have any idea why I might be getting the x86 dependency in the manifest? Here is the manifest that is created. I know the first dependency is added by the Qt config for this platform but I don't understand why the x86 one is also included.
@
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly manifestVersion='1.0'>
<trustInfo >
<security>
<requestedPrivileges>
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='' processorArchitecture='' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*' />
</dependentAssembly>
</dependency>
</assembly>
@ -
On that one, I don't know, sorry
-
Thanks anyway. please post back if you here of anything that might relevant.