Cross compiling page in techbase
Carlo
brandon.ml at gmail.com
Thu Mar 13 19:50:06 CET 2008
On Thu, Mar 13, 2008 at 7:07 PM, Alexander Neundorf <neundorf at kde.org> wrote:
> On Thursday 13 March 2008, Carlo wrote:
> > On Thu, Mar 13, 2008 at 1:11 AM, Alexander Neundorf <neundorf at kde.org>
> wrote:
> ...
>
> > > Is that using the modified FindKDE4.cmake ?
> > > mingw32-kdelibs.cmake sets KDE4_DATA_DIR, and if this is set,
> > > FindKDE4.cmake should use it to load FindKDE4Internal.cmake, which will
> > > load
> > > KDELibsDependencies.cmake, which contains all these settings from the
> > > installed kdelibs.
> > >
> > > What is going wrong ?
> > > How does the installed KDELibsDependencies.cmake look like, i.e. are the
> > > paths in that file the same as the real locations ?
> >
> > Yes it uses the modified FindKDE4.cmake and KDE4_DATA_DIR is set
> > the problem is that KDELibsDependencies.cmake uses
> > ${KDE4_INSTALL_DIR} that is retrieved from this code
> > get_filename_component(_DIR ${KDE4_KDECONFIG_EXECUTABLE} PATH )
> > get_filename_component(KDE4_INSTALL_DIR ${_DIR} PATH )
> > but KDE4_KDECONFIG_EXECUTABLE is setted to the linux one, if i set it
> > to the windows one it goes ahead and it find include and library dir
> > but it doesn't find kde4automoc and kconfig_compiler
> > -- Found KDE 4.1 include dir: /windows/kde4/include
> > -- Found KDE 4.1 library dir: /windows/kde4/lib
> > -- Didn't find the KDE4 kconfig_compiler preprocessor
> > -- Didn't find the KDE4 automoc
>
> Please update your FindKDE4Internal.cmake, I committed a change so that now
> KDE4_INSTALL_DIR is determined relative to the location of the installed
> FindKDE4Internal.cmake instead of kde4-config.exe. This should help for now
> for this problem.
>
>
> > > > for some strange reason for kde4automoc it calls ../bin/kde4automoc
> > > > instead of ../bin/kde4automoc.exe one that's why i made the link in
> > >
> > > Is the .exe extension really required to run the executable ?
> > > Under Windows it isn't. Is this a wine speciality ?
> >
> > no, the problem here is that cmake wants to run makekdewidgets.exe,
> > maybe it tries to run makekdewidgets.exe.bat while kde4automoc is
> > called directly
>
> Ok, I lost track.
> How does it call makekdewidgets, how does it call kde4automoc, and which of
> the two is the problem ?
kde4automoc is called in this way
cd /home/kdeuser/kde/src/KDE/kdelibs/build/kdewidgets &&
../bin/kde4automoc
/home/kdeuser/kde/src/KDE/kdelibs/build/kdewidgets/makekdewidgets_automoc.cpp
/home/kdeuser/kde/src/KDE/kdelibs/kdewidgets
/home/kdeuser/kde/src/KDE/kdelibs/build/kdewidgets
/home/kdeuser/kde/src/qt-copy/bin/moc
while makekdewidgets
cd /home/kdeuser/kde/src/KDE/kdelibs/build/kdewidgets &&
../bin/makekdewidgets.exe -o
/home/kdeuser/kde/src/KDE/kdelibs/build/kdewidgets/kdewidgets.cpp
/home/kdeuser/kde/src/KDE/kdelibs/kdewidgets/kde.widgets
so here the problem is that we should call makekdewidgets without the
.exe extension otherwise it's runned by wine
> > > Ok. This is as far as I see always undefined references from QtUiTools to
> > > QtCore:
> > > /windows/kde4/lib/libQtUiTools.a(quiloader.o):quiloader.cpp:(.text+0x7fd):
> > > undefined reference to `__imp___ZNK7QString6toUtf8Ev'
> > >
> > > Which value does QT_QTUITOOLS_LIBRARY have ?
> > /windows/kde4/lib/libQtUiTools.a
> > anyway I've find out that it could be fixed by just removing
> > /windows/kde4/lib/libQtCore4.a and adding -lQtCore4 instead of every
> > Qt lib
>
> Is libQtUiTools.a a static or a shared library ?
> Don't they usually have the suffix .dll or .lib ?
it should be a shared library, i'm not sure but i think that .dll are
needed for runtime, while .a are just for linking and .lib are static
library compiled with visual c++, btw i get this error with both qt4
from the kdewin installer and the precompiled one from trolltech
More information about the Kde-windows
mailing list