[kde-edu]: CMakeLists.txt for a library

Jason Harris kstars at 30doradus.org
Wed Aug 9 17:26:07 CEST 2006


On Wednesday 09 August 2006 03:26, Henrique Pinto wrote:
> On Wed 09 Aug 2006 04:36, Jason Harris wrote:
> > Three weeks later, I still don't know how to fix this.  I ran "make
> > VERBOSE=1", and it is linking the library (I see "-lSatLib" in the linker
> > command).  The specific error message is:
>
> Do you have GCC hidden visibility enabled? 
I assume this isn't a problem, because I've never had any issues with 
KDE_EXPORT'ed functions under libkdeedu.

However, I don't know how to check.  There's no "-fvisibility=hidden" flag in 
the gcc command, but there is a "-DSatLib_EXPORTS".  I can't find where this 
directive is defined.  It's similar to what happens in libkdeedu/extdate: its 
gcc command doesn't contain "-fvisibility", but it has "-Dextdate_EXPORTS".

> Are the classes or functions in 
> SatLib exported? 
Yes, each function declaration is preceded by "EXPORT".  I tried repacing 
EXPORT with KDE_EXPORT (and adding #include <kdemacros.h>).  There's also 
some weird preprocessor logic at the top of SatLib.h that can disable EXPORT, 
so I commented it out.  Neither of these changes helped.

> Did it link correctly with autotools? 
The library didn't exist when we used autotools.

> Do you use "extern C  
> {...}" to include its headers?
I hadn't done before, because I didn't know this was necessary (it's actually 
'extern "C" {...}', btw).  However, adding it didn't help, I'm still getting 
the same undefined reference errors for these functions.  Is there anything 
else I need to do in order to link to C code?

Maybe I've mishandled the CMakeLists.txt file, although the library itself 
links and installs properly.  Here's the relevant part of my CML.txt:

kde4_add_library(SatLib SHARED ${SatLib_LIB_SRCS})
target_link_libraries(SatLib m)
set_target_properties(SatLib PROPERTIES VERSION 0.1.0 SOVERSION 1 )
install(TARGETS SatLib  DESTINATION ${LIB_INSTALL_DIR} )

The code is pretty simple, so I'm guessing that a knowledgeable person will 
see the problem pretty quickly.  Would you mind trying to compile kstars 
yourself after uncommenting SatelliteComponent::init() ?

thanks for your ideas,
Jason

-- 
KStars: http://edu.kde.org/kstars
Community Forums: http://kstars.30doradus.org


More information about the kde-edu mailing list