kdevplatform tries to link a static lib into a shared lib...

Alexander Neundorf neundorf at kde.org
Tue Aug 21 03:57:08 UTC 2007


On Sunday 19 August 2007 16:22, Andreas Pakulat wrote:
> On 13.08.07 16:29:47, David Faure wrote:
> > ... and that doesn't work, in particular on x86_64.
> >
> > Linking CXX shared module ../../lib/kdevteamwork.so
> > /usr/bin/ld: /d/kde/build/4/kdevplatform/lib/libnetwork.a(message.o):
> > relocation R_X86_64_32 against `a local symbol' can not be used when
> > making a shared object; recompile with -fPIC
> > /d/kde/build/4/kdevplatform/lib/libnetwork.a: could not read symbols: Bad
> > value collect2: ld returned 1 exit status
> > make[2]: *** [lib/kdevteamwork.so] Error 1
> > make[1]: *** [plugins/teamwork/CMakeFiles/kdevteamwork.dir/all] Error 2
> > make: *** [all] Error 2
> > makeobj[0]: Leaving directory `/d/kde/build/4/kdevplatform'
> >
> > libnetwork.a seems to be used only from plugins/teamwork/CMakeLists.txt,
> > how about referencing the libnetwork files from there? Possibly using a
> > var that is set by plugins/teamwork/CMakeLists.txt like we do in
> > koffice/kdgantt/CMakeLists.txt.
> > Or using a real shared library.
>
> Neither nor, the only solution atm is disabling it on 64 bit systems,
> but I don't know how to do that with cmake.

Do I understand correctly that a static library is linked into a shared 
library in the hope that it will work as a libtool convenience library ?
Please don't do this, this doesn't work on all platforms, sooner or later 
there will be problems. Just use the source files directly.

Bye
Alex




More information about the KDevelop-devel mailing list