Details
-
Bug
-
Resolution: Done
-
P2: Important
-
6.0.0
-
MSVC 2019; Cmake 3.18.4; ninja 1.10.1
-
-
ba6175eb731927f2489cdd7d899616a9889aba67 (qt/qtbase/dev)
Description
I build latest qtbase from git.
cmake "../../qt6/qtbase" -DCMAKE_INSTALL_PREFIX=D:\Qt\6.0.0-msvc2019-x64-shared -G"Ninja Multi-Config" -DCMAKE_CONFIGURATION_TYPES=Release;Debug
I find that many exe and dll files don't have version information. Such as:
Qt6Concurrentd.dll,Qt6Core.dll,Qt6Cored.dll,Qt6DBus.dll,Qt6DBusd.dll,Qt6Gui.dll,Qt6Guid.dll,moc.exe,qlalr.exe,qmake.exe, etc.
By checking the compiled output, I find that files without version information don't link *_resourece.rc.res file.
For example, Qt6Concurrent.dll has version information, because it links Concurrent_resource.rc.res.
[1385/3574] cmd.exe /C "cd . && D:\tools\cmake-3.18.4-win64-x64\bin\cmake.exe -E vs_link_dll --intdir=src\concurrent\CMakeFiles\Concurrent.dir\Release --rc="D:\Windows Kits\10\bin\10.0.18362.0\x64\rc.exe" --mt="D:\Windows Kits\10\bin\10.0.18362.0\x64\mt.exe" --manifests -- "D:\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx64\x64\link.exe" /nologo src\concurrent\CMakeFiles\Concurrent_Release_rc.dir\Release\Release\Concurrent_resource.rc.res src\concurrent\CMakeFiles\Concurrent.dir\Release\Concurrent_autogen\mocs_compilation.cpp.obj src\concurrent\CMakeFiles\Concurrent.dir\Release\cmake_pch.cxx.obj src\concurrent\CMakeFiles\Concurrent.dir\Release\qtconcurrentfilter.cpp.obj src\concurrent\CMakeFiles\Concurrent.dir\Release\qtconcurrentiteratekernel.cpp.obj src\concurrent\CMakeFiles\Concurrent.dir\Release\qtconcurrentmap.cpp.obj src\concurrent\CMakeFiles\Concurrent.dir\Release\qtconcurrentrun.cpp.obj src\concurrent\CMakeFiles\Concurrent.dir\Release\qtconcurrentthreadengine.cpp.obj /out:bin\Qt6Concurrent.dll /implib:lib\Qt6Concurrent.lib /pdb:bin\Qt6Concurrent.pdb /dll /version:6.0 /machine:x64 /INCREMENTAL:NO -DYNAMICBASE -NXCOMPAT -OPT:REF lib\Qt6Core.lib mpr.lib userenv.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
But Qt6Concurrentd.dll does not have version information, Because it dose not link Concurrent_resource.rc.res.
[1432/3574] cmd.exe /C "cd . && D:\tools\cmake-3.18.4-win64-x64\bin\cmake.exe -E vs_link_dll --intdir=src\concurrent\CMakeFiles\Concurrent.dir\Debug --rc="D:\Windows Kits\10\bin\10.0.18362.0\x64\rc.exe" --mt="D:\Windows Kits\10\bin\10.0.18362.0\x64\mt.exe" --manifests -- "D:\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx64\x64\link.exe" /nologo src\concurrent\CMakeFiles\Concurrent.dir\Debug\Concurrent_autogen\mocs_compilation.cpp.obj src\concurrent\CMakeFiles\Concurrent.dir\Debug\cmake_pch.cxx.obj src\concurrent\CMakeFiles\Concurrent.dir\Debug\qtconcurrentfilter.cpp.obj src\concurrent\CMakeFiles\Concurrent.dir\Debug\qtconcurrentiteratekernel.cpp.obj src\concurrent\CMakeFiles\Concurrent.dir\Debug\qtconcurrentmap.cpp.obj src\concurrent\CMakeFiles\Concurrent.dir\Debug\qtconcurrentrun.cpp.obj src\concurrent\CMakeFiles\Concurrent.dir\Debug\qtconcurrentthreadengine.cpp.obj /out:bin\Qt6Concurrentd.dll /implib:lib\Qt6Concurrentd.lib /pdb:bin\Qt6Concurrentd.pdb /dll /version:6.0 /machine:x64 /debug -DYNAMICBASE -NXCOMPAT lib\Qt6Cored.lib mpr.lib userenv.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
The build log is in attachment.