[Kde-bindings] Re: various QAccessibleBridgePlugin symbols not found on mac build
Ben Skelton
ben.skelton at chestnut-tree-cafe.org
Sat Feb 12 16:57:45 UTC 2011
Hi Arno
> I don't have OS X and I don't know anything about its framework stuff, so I can
> only guess what's going wrong.
I'm happy to take your guesses and work through the issues, feeding back any changes. The issue will be one of a lack of competence on my part.
CMakeCache.txt contains this line:
> QT_HEADERS_DIR:INTERNAL=/usr/include
There are no qt header files in that directory. I see that when cmake finds qt it reports it as:
> Found Qt-Version 4.7.0 (using /usr/bin/qmake)
Because it finds qmake in /usr/bin, is it expecting to find perhaps includes in /usr/include, possibly libraries in /usr/lib? Is there a way to force identify the location of qt headers and libraries to cmake?
Here is my qtdefines:
> QT_NO_CAST_TO_ASCII
> QT_GUI_LIB
> QT_USE_NAMESPACE
> QT_BEGIN_NAMESPACE
> QT_END_NAMESPACE
> QT_BEGIN_INCLUDE_NAMESPACE
> QT_END_INCLUDE_NAMESPACE
> QT_BEGIN_MOC_NAMESPACE
> QT_END_MOC_NAMESPACE
> QT_BEGIN_HEADER
> QT_END_HEADER
> QT_BEGIN_INCLUDE_HEADER
> QT_VISIBILITY_AVAILABLE
> QT_NO_ARM_EABI
> QT_STATIC_CONST_IMPL
> QT_DEPRECATED
> QT_DEPRECATED_VARIABLE
> QT_DEPRECATED_CONSTRUCTOR
> QT_MOC_COMPAT
> QT_ASCII_CAST_WARN_CONSTRUCTOR
> QT_ASCII_CAST_WARN
> QT_FASTCALL
> QT_NO_COP
> QT_NO_WARNINGS
> QT_ARCH_MACOSX
> QT_MAC_FRAMEWORK_BUILD
> QT_NO_ALSA
> QT_NO_CLOCK_MONOTONIC
> QT_NO_COREWLAN
> QT_NO_EGL
> QT_NO_GLIB
> QT_NO_GSTREAMER
> QT_NO_GUI
> QT_NO_ICD
> QT_NO_IMAGEFORMAT_JPEG
> QT_NO_IMAGEFORMAT_MNG
> QT_NO_IMAGEFORMAT_TIFF
> QT_NO_INOTIFY
> QT_NO_MREMAP
> QT_NO_NAS
> QT_NO_OPENVG
> QT_NO_S60
> QT_NO_STYLE_GTK
> QT_NO_STYLE_S60
> QT_NO_SXE
> QT_NO_ZLIB
> QT_RUNTIME_XCURSOR
> QT_RUNTIME_XFIXES
> QT_RUNTIME_XINERAMA
> QT_RUNTIME_XINPUT
> QT_RUNTIME_XRANDR
> QT_NO_STYLE_WINDOWSXP
> QT_NO_STYLE_MAC
cheers,
--Ben
On 13 Feb 2011, at 00:35, Arno Rehn wrote:
> On Saturday 12 February 2011 17:09:01 Ben Skelton wrote:
>> Hi Arno,
>>
>> thanks for that. I pulled the repository and can see the change:
>>> Kauri:smokeqt benskelton$ git whatchanged
>>> commit ada5f597432ee33d031b49f050aaa25c631dba19
>>> Author: Arno Rehn <arno at arnorehn.de>
>>> Date: Thu Feb 10 17:27:54 2011 +0100
>>>
>>> include QT_NO_ACCESSIBILITY checks in every build (important for mac
>>> builds)
>>> :
>>> :100644 100644 a5f4e24... 25eb32a... M qtcore/QtGuess.txt
>>
>> Removing the cmake cache and re-running gives:
>>> -- Checking how Qt was built...
>>> -- Threshold is set to 15
>>> -- QT_NO_DEBUG *Undefined*
>>> -- QT_NO_ACCESSIBILITY *Undefined*
>>> -- QT_NO_STYLE_PLASTIQUE *Undefined*
>>> -- QT_NO_STYLE_WINDOWSXP [Defined]
>>> -- QT_NO_STYLE_WINDOWS *Undefined*
>>> -- QT_NO_STYLE_MAC [Defined]
>>> -- QT_NO_STYLE_CLEANLOOKS *Undefined*
>>> -- QT_NO_TABLEVIEW *Undefined*
>>
>> I don't know if the undefined QT_NO_ACCESSIBILITY is expected. I was
>> running into some strange build errors that made me think that there was a
>> problem with my macports build of qt. I deactivated macports' qt and
>> installed the SDK from qt.nokia.com/downloads.
> Hm. That's strange. I would have expected the test to fail, since the
> QAccessibleBridgePlugin symbol (or whatever that was) wasn't found. So I
> thought Qt was compiled without accessibility functionality. Apparently I was
> wrong, otherwise the test wouldn't result in *undefined*.
> Can you check where the QAccessible symbols are, and _which_ symbols there
> are?
>
>> I've noticed that config.xml files have some header file errors when Qt is
> "Frameworkized" instead of installed in the /opt/local tree with the macports
> install. For example in qtcore/config.xml:
>>> <config>
>>>
>>> <resolveTypedefs>true</resolveTypedefs>
>>> <qtMode>true</qtMode>
>>> <generator>smoke</generator>
>>> <definesList>/Users/benskelton/Desktop/Aladdin/smokeqt/qtdefines</def
>>> inesList> <includeDirs>
>>>
>>> <dir>/usr/include;/Library/Frameworks/QtCore.framework</dir>
>>> <dir>/Library/Frameworks/QtCore.framework/Headers</dir>
>>>
>>> </includeDirs>
>>>
>>> </config>
>>
>> the first includeDirs seems wrong and should be:
>>> /Library/Frameworks/QtCore.framework/Headers
> I don't know if the first entry breaks anything (the second one is correct
> after all). You can remove it manually and try again. The config files are
> generated from .cmake template files in the source dir, you might want to check
> them as well.
>
>> A bigger problem then occurs:
>>> [ 3%] Building CXX object qtcore/CMakeFiles/smokeqtcore.dir/x_1.cpp.o
>>> /Library/Frameworks/QtCore.framework/Headers/qabstractanimation.h: In
>>> constructor
>>> ‘__smokeqtcore::x_QAbstractAnimation::x_QAbstractAnimation(const
>>> QAbstractAnimation&)’:
>>> /Library/Frameworks/QtCore.framework/Headers/qabstractanimation.h:131:
>>> error: ‘QAbstractAnimation::QAbstractAnimation(const
>>> QAbstractAnimation&)’ is private
>>> /Users/benskelton/Desktop/Aladdin/smokeqt/qtcore/x_1.cpp:165: error:
>>> within this context
>>> /Library/Frameworks/QtCore.framework/Headers/qobject.h: In copy
>>> constructor ‘QAbstractEventDispatcher::QAbstractEventDispatcher(const
>>> QAbstractEventDispatcher&)’:
>>> /Library/Frameworks/QtCore.framework/Headers/qobject.h:309: error:
>>> ‘QObject::QObject(const QObject&)’ is private
>>> /Library/Frameworks/QtCore.framework/Headers/qabstracteventdispatcher.h:
>>> 59: error: within this context
>>> /Users/benskelton/Desktop/Aladdin/smokeqt/qtcore/x_1.cpp: In constructor
>>> ‘__smokeqtcore::x_QAbstractEventDispatcher::x_QAbstractEventDispatcher(c
>>> onst QAbstractEventDispatcher&)’:
>>> /Users/benskelton/Desktop/Aladdin/smokeqt/qtcore/x_1.cpp:443: note:
>>> synthesized method
>>> ‘QAbstractEventDispatcher::QAbstractEventDispatcher(const
>>> QAbstractEventDispatcher&)’ first required here make[2]: ***
>>> [qtcore/CMakeFiles/smokeqtcore.dir/x_1.cpp.o] Error 1 make[1]: ***
>>> [qtcore/CMakeFiles/smokeqtcore.dir/all] Error 2
>>> make: *** [all] Error 2
> Something's definitely going wrong here. smokegen doesn't parse the classes
> correctly, probably it can't find a header file or it's missing more #defines.
> Can you post the qtdefines file in <smokeqt-build-dir>?
>
> I don't have OS X and I don't know anything about its framework stuff, so I can
> only guess what's going wrong.
>
> --
> Arno Rehn
> arno at arnorehn.de
More information about the Kde-bindings
mailing list