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.