Linking error with recent libdc

Jef Driesen jef at libdivecomputer.org
Tue Jul 7 23:40:04 PDT 2015


On 2015-07-08 07:13, Gaetan Bisson wrote:
> [2015-07-07 21:45:49 -0700] Dirk Hohndel:
>> On Tue, Jul 07, 2015 at 05:59:00PM -1000, Gaetan Bisson wrote:
>> > Linking CXX executable subsurface
>> > libsubsurface_corelib.a(libdivecomputer.c.o): In function `do_libdivecomputer_import':
>> > /build/subsurface-git/src/subsurface/libdivecomputer.c:932: undefined reference to `dc_device_custom_open'
>> > libsubsurface_corelib.a(qtserialbluetooth.cpp.o): In function `dc_serial_qt_open':
>> > /build/subsurface-git/src/subsurface/qtserialbluetooth.cpp:232: undefined reference to `dc_serial_init'
>> > collect2: error: ld returned 1 exit status
>> > CMakeFiles/subsurface.dir/build.make:281: recipe for target 'subsurface' failed
>> 
>> So it's linking against the wrong libdivecomputer.
> 
> So it seems I am building against the "right" one.
> 
> Except the subsurface-libdc-git package I have built (from the proper
> sources) contains references to, say, "dc_device_custom_open" in its
> header files but not in the shared library...
> 
> Is there anything new (dependency or otherwise) needed to properly 
> build
> libdc/Subsurface-testing? Or perhaps my build karma is not doing 
> well...

I suspect the problem is that these functions are not listed in the 
src/libdivecomputer.symbols file. Only the functions that are listed 
there are exported in the shared library.

Jef


More information about the subsurface mailing list