frameworks and plasma partially link to wrong libs? ehh..

Mark markg85 at gmail.com
Fri Aug 2 22:34:59 UTC 2013


On Fri, Aug 2, 2013 at 8:47 PM, Mark <markg85 at gmail.com> wrote:
> Hi,
>
> I followed the exact instructions from here:
> http://community.kde.org/Frameworks/Building
>
> my .bashrc looks like:
> export KF5=/home/kde-devel/kf5
> export QTDIR=/home/kde-devel/qt5dev/qtbase
> export XDG_DATA_DIRS=$KF5/share:$XDG_DATA_DIRS:/usr/share
> export XDG_CONFIG_DIRS=$KF5/etc/xdg:$XDG_CONFIG_DIRS:/etc/xdg
> export PATH=$KF5/bin:$QTDIR/bin:$PATH
> export QT_PLUGIN_PATH=$KF5/lib/plugins:$KF5/lib64/plugins:$KF5/lib/x86_64-linux-gnu/plugins:$QTDIR/plugins:$QT_PLUGIN_PATH
> export QML2_IMPORT_PATH=$KF5/lib/qml:$KF5/lib64/qml:$KF5/lib/x86_64-linux-gnu/qml:$QTDIR/qml
>
> export CMAKE_PREFIX_PATH=$KF5:$CMAKE_PREFIX_PATH
>
> Building Qt from the dev branch: all ok, no problem at all.
> Building frameworks: it compiles and probably because it doesn't need
> the wrong linked libs, but CMakeCache.txt includes the following:
> //The directory containing a CMake configuration file for Qt5OpenGL.
> Qt5OpenGL_DIR:PATH=/usr/lib64/cmake/Qt5OpenGL
>
> //The directory containing a CMake configuration file for Qt5PrintSupport.
> Qt5PrintSupport_DIR:PATH=/home/kde-devel/qt5dev/qtbase/lib/cmake/Qt5PrintSupport
>
> //The directory containing a CMake configuration file for Qt5Qml.
> Qt5Qml_DIR:PATH=/home/kde-devel/qt5dev/qtbase/lib/cmake/Qt5Qml
>
> //The directory containing a CMake configuration file for Qt5Quick.
> Qt5Quick_DIR:PATH=/home/kde-devel/qt5dev/qtbase/lib/cmake/Qt5Quick
>
> //The directory containing a CMake configuration file for Qt5Script.
> Qt5Script_DIR:PATH=/home/kde-devel/qt5dev/qtbase/lib/cmake/Qt5Script
>
> //The directory containing a CMake configuration file for Qt5Sensors.
> Qt5Sensors_DIR:PATH=/usr/lib64/cmake/Qt5Sensors
>
> //The directory containing a CMake configuration file for Qt5Svg.
> Qt5Svg_DIR:PATH=/home/kde-devel/qt5dev/qtbase/lib/cmake/Qt5Svg
>
> //The directory containing a CMake configuration file for Qt5Test.
> Qt5Test_DIR:PATH=/home/kde-devel/qt5dev/qtbase/lib/cmake/Qt5Test
>
> //The directory containing a CMake configuration file for Qt5UiTools.
> Qt5UiTools_DIR:PATH=/home/kde-devel/qt5dev/qtbase/lib/cmake/Qt5UiTools
>
> //The directory containing a CMake configuration file for Qt5WebKitWidgets.
> Qt5WebKitWidgets_DIR:PATH=/usr/lib64/cmake/Qt5WebKitWidgets
>
> //The directory containing a CMake configuration file for Qt5WebKit.
> Qt5WebKit_DIR:PATH=/usr/lib64/cmake/Qt5WebKit
>
> ---
>
> Note that Qt5OpenGL, Qt5Sensors and Qt5WebKit have the wrong path. It
> should start with(in my case):
> "/home/kde-devel/qt5dev/qtbase/lib/cmake/<module>"
>
> For frameworks this seems to compile just fine. I'm guessing
> frameworks never links to any of those libraries.
>
> However, for plasma the story is a bit different. It includes the
> following lines in CMakeCache.txt:
> //The directory containing a CMake configuration file for Qt5Network.
> Qt5Network_DIR:PATH=/home/kde-devel/qt5dev/qtbase/lib/cmake/Qt5Network
>
> //The directory containing a CMake configuration file for Qt5OpenGL.
> Qt5OpenGL_DIR:PATH=/usr/lib64/cmake/Qt5OpenGL
>
> //The directory containing a CMake configuration file for Qt5PrintSupport.
> Qt5PrintSupport_DIR:PATH=/home/kde-devel/qt5dev/qtbase/lib/cmake/Qt5PrintSupport
>
> //The directory containing a CMake configuration file for Qt5Qml.
> Qt5Qml_DIR:PATH=/usr/lib64/cmake/Qt5Qml
>
> //The directory containing a CMake configuration file for Qt5Quick.
> Qt5Quick_DIR:PATH=/usr/lib64/cmake/Qt5Quick
>
> //The directory containing a CMake configuration file for Qt5ScriptTools.
> Qt5ScriptTools_DIR:PATH=/home/kde-devel/qt5dev/qtbase/lib/cmake/Qt5ScriptTools
>
> //The directory containing a CMake configuration file for Qt5Script.
> Qt5Script_DIR:PATH=/home/kde-devel/qt5dev/qtbase/lib/cmake/Qt5Script
>
> //The directory containing a CMake configuration file for Qt5Sensors.
> Qt5Sensors_DIR:PATH=/usr/lib64/cmake/Qt5Sensors
>
> ------
> There Qt5Qml, Qt5Quick and Qt5Sensors are linked wrong where Qt5Qml
> and Qt5Quick are an issue. They cause the following linker errors:
>
> /usr/lib/libQt5Quick.so.5.1.0: undefined reference to
> `v8::V8::DisposeGlobal(v8::internal::Object**)'
> /usr/lib/libQt5Qml.so.5.1.0: undefined reference to
> `v8::V8::MakeWeak(v8::internal::Object**, void*, void
> (*)(v8::Persistent<v8::Value>, void*))'
> /usr/lib/libQt5Quick.so.5.1.0: undefined reference to
> `v8::FunctionTemplate::New(v8::Handle<v8::Value> (*)(v8::Arguments
> const&), v8::Handle<v8::Value>, v8::Handle<v8::Signature>)'
> /usr/lib/libQt5Qml.so.5.1.0: undefined reference to
> `v8::HeapProfiler::TakeSnapshot(v8::Handle<v8::String>,
> v8::HeapSnapshot::Type, v8::ActivityControl*)'
> /usr/lib/libQt5Quick.so.5.1.0: undefined reference to
> `v8::V8::GlobalizeReference(v8::internal::Object**)'
> /usr/lib/libQt5Quick.so.5.1.0: undefined reference to
> `v8::Object::CheckedGetInternalField(int)'
>
> Now manually correcting the paths for Qt5Qml and Qt5Quick works and
> makes plasma-shell (the one giving me the linker errors) compile just
> fine. I'm guessing that's not the intended way ;)
>
> Is this a known issue and do i need to update something to fix it?
> Note that i have the latest version of the KF5 chain since ~2 hours
> before this mail. That includes "Extra CMake Modules" where the last
> commit is:
>
> commit 7f219e376523ae2a3559b45bf6eea8daa8d82765
> Author: Kevin Ottens <ervin at kde.org>
> Date:   Thu Jul 25 08:16:28 2013 +0200
>
>     Add KDE4Attic, KUnitConversion and KIO to the staging list
>
>
>
> Cheers,
> Mark

Note: i fixed this (or actually worked around it) by removing my
system Qt 5.1 packages since only QtCreator was dependent on that. I'm
using ArchLinux btw. I wasn't expecting those system packages to be a
problem because they had a lower version. Apparently that is a
problem..

After that was removed the rest compiled just fine.


More information about the Kde-frameworks-devel mailing list