Skip to content
Snippets Groups Projects
  • Tomáš Pecka's avatar
    30422956
    cmake: Link alib2cli with CMAKE_DL_LIBS · 30422956
    Tomáš Pecka authored and Tomáš Pecka's avatar Tomáš Pecka committed
    OpenSuse Leap package builds fail with undefined reference to dlclose
    and dlopen. The -ldl link flag is missing (see the error below).
    Let's fix that by adding the ${CMAKE_DL_LIBS} link target [1] to
    alib2cli.
    
     /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: CMakeFiles/alib2cli.dir/src/common/LibraryLoader.cpp.o: in function `cli::LibraryLoader::Library::unload()':
     /build/pkg/build/pkgs/opensuse-leap-15.3/algorithms-library-snapshot-0.0.0.r1277.gf2a2ccf62-1/rpmbuild/BUILD/algorithms-library-v0.0.0.r1277.gf2a2ccf62/alib2cli/src/common/LibraryLoader.h:44: undefined reference to `dlclose'
     /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: /build/pkg/build/pkgs/opensuse-leap-15.3/algorithms-library-snapshot-0.0.0.r1277.gf2a2ccf62-1/rpmbuild/BUILD/algorithms-library-v0.0.0.r1277.gf2a2ccf62/alib2cli/src/common/LibraryLoader.h:44: undefined reference to `dlclose'
     /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: CMakeFiles/alib2cli.dir/src/common/LibraryLoader.cpp.o: in function `cli::LibraryLoader::Library::load()':
     /build/pkg/build/pkgs/opensuse-leap-15.3/algorithms-library-snapshot-0.0.0.r1277.gf2a2ccf62-1/rpmbuild/BUILD/algorithms-library-v0.0.0.r1277.gf2a2ccf62/alib2cli/src/common/LibraryLoader.h:37: undefined reference to `dlopen'
     /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: /build/pkg/build/pkgs/opensuse-leap-15.3/algorithms-library-snapshot-0.0.0.r1277.gf2a2ccf62-1/rpmbuild/BUILD/algorithms-library-v0.0.0.r1277.gf2a2ccf62/alib2cli/src/common/LibraryLoader.h:39: undefined reference to `dlerror'
     collect2: error: ld returned 1 exit status
     make[2]: *** [alib2cli/CMakeFiles/alib2cli.dir/build.make:500: alib2cli/libalib2cli.so.0.0.0] Error 1
     make[1]: *** [CMakeFiles/Makefile2:1017: alib2cli/CMakeFiles/alib2cli.dir/all] Error 2
     make[1]: *** Waiting for unfinished jobs....
     make: *** [Makefile:150: all] Error 2
    
    [1] https://cmake.org/cmake/help/latest/variable/CMAKE_DL_LIBS.html
    30422956
    History
    cmake: Link alib2cli with CMAKE_DL_LIBS
    Tomáš Pecka authored and Tomáš Pecka's avatar Tomáš Pecka committed
    OpenSuse Leap package builds fail with undefined reference to dlclose
    and dlopen. The -ldl link flag is missing (see the error below).
    Let's fix that by adding the ${CMAKE_DL_LIBS} link target [1] to
    alib2cli.
    
     /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: CMakeFiles/alib2cli.dir/src/common/LibraryLoader.cpp.o: in function `cli::LibraryLoader::Library::unload()':
     /build/pkg/build/pkgs/opensuse-leap-15.3/algorithms-library-snapshot-0.0.0.r1277.gf2a2ccf62-1/rpmbuild/BUILD/algorithms-library-v0.0.0.r1277.gf2a2ccf62/alib2cli/src/common/LibraryLoader.h:44: undefined reference to `dlclose'
     /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: /build/pkg/build/pkgs/opensuse-leap-15.3/algorithms-library-snapshot-0.0.0.r1277.gf2a2ccf62-1/rpmbuild/BUILD/algorithms-library-v0.0.0.r1277.gf2a2ccf62/alib2cli/src/common/LibraryLoader.h:44: undefined reference to `dlclose'
     /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: CMakeFiles/alib2cli.dir/src/common/LibraryLoader.cpp.o: in function `cli::LibraryLoader::Library::load()':
     /build/pkg/build/pkgs/opensuse-leap-15.3/algorithms-library-snapshot-0.0.0.r1277.gf2a2ccf62-1/rpmbuild/BUILD/algorithms-library-v0.0.0.r1277.gf2a2ccf62/alib2cli/src/common/LibraryLoader.h:37: undefined reference to `dlopen'
     /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: /build/pkg/build/pkgs/opensuse-leap-15.3/algorithms-library-snapshot-0.0.0.r1277.gf2a2ccf62-1/rpmbuild/BUILD/algorithms-library-v0.0.0.r1277.gf2a2ccf62/alib2cli/src/common/LibraryLoader.h:39: undefined reference to `dlerror'
     collect2: error: ld returned 1 exit status
     make[2]: *** [alib2cli/CMakeFiles/alib2cli.dir/build.make:500: alib2cli/libalib2cli.so.0.0.0] Error 1
     make[1]: *** [CMakeFiles/Makefile2:1017: alib2cli/CMakeFiles/alib2cli.dir/all] Error 2
     make[1]: *** Waiting for unfinished jobs....
     make: *** [Makefile:150: all] Error 2
    
    [1] https://cmake.org/cmake/help/latest/variable/CMAKE_DL_LIBS.html
Code owners
Assign users and groups as approvers for specific file changes. Learn more.