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

Qt libraries badly refer to one another

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P3: Somewhat important
    • 5.2.0
    • 5.1.0
    • Other
    • None
    • OS X 10.8.4

    Description

      I have just upgraded to Qt 5.1.0 and from what I can tell, Qt libraries badly refer to other Qt libraries. For example:

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      $ cd /Applications/Qt/5.1.0/clang_64/lib/QtWebKit.framework/Versions/5
      $ otool -L QtWebKit
      QtWebKit:
      /Applications/Qt//5.1.0/clang_64/lib/QtWebKit.framework/Versions/5/QtWebKit (compatibility version 5.1.0, current version 5.1.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.1.0, current version 5.1.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.1.0, current version 5.1.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtGui.framework/Versions/5/QtGui (compatibility version 5.1.0, current version 5.1.0)
      /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 153.0.0)
      /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1138.32.0)
      /usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.3.0)
      /usr/lib/libxslt.1.dylib (compatibility version 3.0.0, current version 3.24.0)
      /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
      /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface (compatibility version 1.0.0, current version 1.0.0)
      /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 635.19.0)
      /usr/lib/libsqlite3.dylib (compatibility version 9.0.0, current version 9.6.0)
      /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
      /usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 46.1.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtQuick.framework/Versions/5/QtQuick (compatibility version 5.1.0, current version 5.1.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtQml.framework/Versions/5/QtQml (compatibility version 5.1.0, current version 5.1.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtSql.framework/Versions/5/QtSql (compatibility version 5.1.0, current version 5.1.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtSensors.framework/Versions/5/QtSensors (compatibility version 5.1.0, current version 5.1.0)
      /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
      /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
      /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
      /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
      /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
      /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 53.0.0)
      /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 41.0.0)
      /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 833.24.0)
      $ cd /Applications/Qt/5.1.0/clang_64/plugins/accessible
      $ otool -L libqtaccessiblequick.dylib
      libqtaccessiblequick.dylib:
      libqtaccessiblequick.dylib (compatibility version 0.0.0, current version 0.0.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtQuick.framework/Versions/5/QtQuick (compatibility version 5.1.0, current version 5.1.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtQml.framework/Versions/5/QtQml (compatibility version 5.1.0, current version 5.1.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.1.0, current version 5.1.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.1.0, current version 5.1.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtGui.framework/Versions/5/QtGui (compatibility version 5.1.0, current version 5.1.0)
      /Applications/Qt//5.1.0/clang_64/lib/QtV8.framework/Versions/5/QtV8 (compatibility version 5.1.0, current version 5.1.0)
      /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
      /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
      /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
      /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      As you can see, all references to Qt libraries start with /Applications/Qt//5.1.0/clang_64/lib/, i.e. there is "//" between "Qt" and "5.1.0" while you would expect "/".

      Now, it doesn't matter as such in the sense that the library is still usable. However, if you build an application and then want to deploy it, you will need to replace something like /Applications/Qt//5.1.0/clang_64/lib/QtCore.framework/Versions/5/QtCore with @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore. I am aware of macdeployqt, but I have had so many problems with it in the past that I came up with my own solution, and this is where the fact that "//" is used rather than "/" is a problem. Indeed, I automatically retrieve the Qt library path and it doesn't contain "//", but only "/" as expected. I therefore have to modify the retrieved Qt library path so that my solution can work as expected. Not neat!

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            macadder Jason McDonald
            agarny Alan Garny
            Votes:
            2 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes