Le 29/04/2022 à 11:30, Javier Jimenez Shaw a écrit :
We have a link problem on Linux when using GDAL transiently. If we link the unit tests for a library which depends on GDAL, i.e. an executable which transiently depends on GDAL through our library, we get the following linker error:

/usr/bin/ld: libs/ioimage/tests/CMakeFiles/tests_unit_ioimage.dir/unit/writers/test_geoTiffWriter.cpp.o: undefined reference to symbol 'dlerror@@GLIBC_2.2.5' /usr/bin/ld: /lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line

We need to add -ldl to the linker line after GDAL in order to resolve the linker problem. This can be done when adding the property

  INTERFACE_LINK_LIBRARIES "dl"

to the GDAL::GDAL imported target in GDAL-targets-release.cmake (this is a generated file); apparently it is not enough to add dl to the IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE property.

Does GDAL depend publicly on dl?

Not that I'm aware of.

Our CI runs ./autotest/postinstall/test_cmake.sh which in particular has a ./autotest/postinstall/test_cpp/CMakeLists.txt that has GDAL has a dependency

Perhaps you could check how your setup is different from that ?

We do not find the proper way to patch GDAL's CMake code to add that dependency in the generated config file.

Thanks
Javier

.___ ._ ..._ .. . ._.  .___ .. __ . _. . __..  ... .... ._ .__
Entre dos pensamientos racionales
hay infinitos pensamientos irracionales.


_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

--
http://www.spatialys.com
My software is free, but my time generally not.
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to