We are trying to compile and run v23.0 on almalinux 9.2. Our gcc version is 11.3 and cmake version is 3.13.0 as shared library modules.

While loading the libprotobuf.so.23.0 we get the undefined symbol error.

Even the objdump displays that as U (undefined)

Our Make file

ExternalProject_Add (tar-protobufs
   URL ${CMAKE_CURRENT_SOURCE_DIR}/google-protobuf-v23.0.tar.gz
   #UPDATE_COMMAND ""
   #PATCH_COMMAND patch -p 1 < ${CMAKE_CURRENT_SOURCE_DIR}/protobufs_const.patch
   PREFIX ${CMAKE_CURRENT_BINARY_DIR}/Protobufs

   #BINARY_DIR <SOURCE_DIR>
   BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/Protobufs/src/tar-protobufs
   CONFIGURE_COMMAND cmake . -DCMAKE_CXX_STANDARD=14 -Dprotobuf_BUILD_SHARED_LIBS=ON -Dprotobuf_ABSL_PROVIDER=package -DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}/INSTALL -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/INSTALL
   BUILD_COMMAND cmake --build .

   #INSTALL_COMMAND make install DESTDIR=${CMAKE_CURRENT_BINARY_DIR}/INSTALL
   INSTALL_COMMAND make install
)

ExternalProject_Add_Step(tar-protobufs abseil
  COMMENT "Run Abseil installation"
  COMMAND tar -zxf ${CMAKE_CURRENT_SOURCE_DIR}/abseil-cpp-12042003.tar-gz
  COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/INSTALL
  COMMAND cd abseil-cpp && mkdir -p build && cd build
  COMMAND cd abseil-cpp/build  && cmake -DABSL_BUILD_TESTING=OFF -DABSL_USE_GOOGLETEST_HEAD=OFF -DCMAKE_CXX_STANDARD=14 -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/INSTALL -DBUILD_SHARED_LIBS=ON ..
  COMMAND cd abseil-cpp/build  && cmake --build . --target all
  COMMAND cd abseil-cpp/build  && make install
  #DEPENDEES patch
  #DEPENDERS configure
  WORKING_DIRECTORY <SOURCE_DIR>
)

Appreciate any input on how to get it going on AlmaLinux.

Regards, Syed

User application should Run flawlessly.

0

There are 0 best solutions below