PDA

View Full Version : Qt 4.7 - Mac OS X - Might be loading two sets of Qt binaries into the same process



agarny
27th January 2011, 13:25
I am trying to deploy my Qt application on Mac OS X (using macdeployqt and by manually adding the SQLite plugin to my application bundle) and everything works fine except for the fact that I keep getting the following messages whenever I run my application (which, itself, works perfectly fine):

QObject::moveToThread: Current thread (0x102a12450) is not the object's thread (0x102b47bb0).
Cannot move to target thread (0x102a12450)

On Mac OS X, you might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
QObject::moveToThread: Current thread (0x102a12450) is not the object's thread (0x102b47bb0).
Cannot move to target thread (0x102a12450)

On Mac OS X, you might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
QObject::moveToThread: Current thread (0x102b194f0) is not the object's thread (0x102b47bb0).
Cannot move to target thread (0x102a12450)

On Mac OS X, you might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
QObject::moveToThread: Current thread (0x102b179b0) is not the object's thread (0x102b47bb0).
Cannot move to target thread (0x102a12450)

On Mac OS X, you might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
Then, when setting and exporting DYLD_PRINT_LIBRARIES to 1, I get the following:

dyld: loaded: /bin/sh
dyld: loaded: /usr/lib/libncurses.5.4.dylib
dyld: loaded: /usr/lib/libiconv.2.dylib
dyld: loaded: /usr/lib/libSystem.B.dylib
dyld: loaded: /usr/lib/system/libmathCommon.A.dylib
dyld: loaded: /usr/bin/uname
dyld: loaded: /usr/lib/libSystem.B.dylib
dyld: loaded: /usr/lib/system/libmathCommon.A.dylib
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/OpenCOR
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/../Frameworks/QtCore.framework/Versions/4/QtCore
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/../Frameworks/QtGui.framework/Versions/4/QtGui
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/../Frameworks/QtHelp.framework/Versions/4/QtHelp
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/../Frameworks/QtNetwork.framework/Versions/4/QtNetwork
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/../Frameworks/QtSql.framework/Versions/4/QtSql
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/../Frameworks/QtWebKit.framework/Versions/4/QtWebKit
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/../Frameworks/QtXml.framework/Versions/4/QtXml
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/../Frameworks/libLibQxt.dylib
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/../Frameworks/libQtSingleApplication.dylib
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/../Frameworks/phonon.framework/Versions/4/phonon
dyld: loaded: /usr/lib/libstdc++.6.dylib
dyld: loaded: /usr/lib/libSystem.B.dylib
dyld: loaded: /usr/lib/libz.1.dylib
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
dyld: loaded: /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
dyld: loaded: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
dyld: loaded: /usr/lib/system/libmathCommon.A.dylib
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/...
dyld: loaded: /usr/lib/libbsm.0.dylib
dyld: loaded: /usr/lib/libicucore.A.dylib
dyld: loaded: /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
dyld: loaded: /System/Library/Frameworks/Security.framework/Versions/A/Security
dyld: loaded: /usr/lib/system/libkxld.dylib
dyld: loaded: /usr/lib/libauto.dylib
dyld: loaded: /usr/lib/libobjc.A.dylib
dyld: loaded: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/...
dyld: loaded: /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
dyld: loaded: /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
dyld: loaded: /usr/lib/libsqlite3.dylib
dyld: loaded: /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
dyld: loaded: /usr/lib/libxslt.1.dylib
dyld: loaded: /usr/lib/libxml2.2.dylib
dyld: loaded: /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/...
dyld: loaded: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/...
dyld: loaded: /usr/lib/libcrypto.0.9.8.dylib
dyld: loaded: /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
dyld: loaded: /usr/lib/libcups.2.dylib
dyld: loaded: /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
dyld: loaded: /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
dyld: loaded: /usr/lib/libresolv.9.dylib
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
dyld: loaded: /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/...
dyld: loaded: /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
dyld: loaded: /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
dyld: loaded: /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
dyld: loaded: /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
dyld: loaded: /System/Library/PrivateFrameworks/FamilyControls.framework/Versions/A/FamilyControls
dyld: loaded: /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
dyld: loaded: /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
dyld: loaded: /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
dyld: loaded: /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/...
dyld: loaded: /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
dyld: loaded: /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
dyld: loaded: /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
dyld: loaded: /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
dyld: loaded: /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
dyld: loaded: /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Frameworks/CommerceCore.framework/Versions/A/CommerceCore
dyld: loaded: /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
dyld: loaded: /System/Library/PrivateFrameworks/PasswordServer.framework/Versions/A/PasswordServer
dyld: loaded: /System/Library/Frameworks/DirectoryService.framework/Versions/A/DirectoryService
dyld: loaded: /usr/lib/libsasl2.2.dylib
dyld: loaded: /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
dyld: loaded: /usr/lib/liblangid.dylib
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/../Frameworks/libQtCLucene.4.dylib
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/MacOS/../Frameworks/QtDBus.framework/Versions/4/QtDBus
dyld: loaded: /usr/lib/libiconv.2.dylib
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCSync.A.dylib
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Versions/A/Resources/ColorSyncDeprecated.dylib
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGXType.A.dylib
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libTrueTypeScaler.dylib
dyld: loaded: /Users/Alan/OpenCOR/build/OpenCOR.app/Contents/plugins/sqldrivers/libqsqlite.dylib
dyld: loaded: /Library/Frameworks/QtSql.framework/Versions/4/QtSql
dyld: loaded: /Library/Frameworks/QtCore.framework/Versions/4/QtCore
QObject::moveToThread: Current thread (0x102b01320) is not the object's thread (0x102b70d10).
Cannot move to target thread (0x102b01320)

On Mac OS X, ...Note that I removed some lines (hopefully, none of the critical ones!), since it was too big. Still, I get the feeling that the problem might be related to the SQLite plugin. Am I correct and, if so, how can I go about fixing that problem?

agarny
4th February 2011, 15:53
Ok, I have (finally) found out what the (stupid) problem was. As always, when you know the answer, it's dead obvious!

Anyway, it was indeed an issue with the SQLite plugin. The problem was that having Qt installed on my Mac and some Qt binaries (those considered necessary by macdeployqt) embedded in my application bundle, SQLite would, by default, use the Qt binaries that are installed on my Mac.

So, all I had to do was to tell SQLite which Qt binaries to use, this using the install_name_tool program, e.g.

$ cd [PathToMyApp]/myApp.app/Contents/Frameworks
$ install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore ../PlugIns/sqldrivers/libqsqlite.dylib
$ install_name_tool -change QtSql.framework/Versions/4/QtSql @executable_path/../Frameworks/QtSql.framework/Versions/4/QtSql ../PlugIns/sqldrivers/libqsqlite.dylibThat's it, nothing more, nothing less. :)