Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-88267

Many exe and dll files lack version information

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 6.0.0
    • 6.0.0
    • Build System: CMake
    • MSVC 2019; Cmake 3.18.4; ninja 1.10.1

    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.

      Attachments

        Activity

          People

            jbornema Joerg Bornemann
            lixinwei Li Xinwei
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: