I face with some errors when building zmq as an external library in Debian 12

45 Views Asked by At

I am working with a legacy code that developed in Centos 8. Now, I have to build it in the Debian 12 (We don't have any problem in Centos!). One of the project dependencies is zmq that build with below script in a CMakeLists.txt file.

add_compile_options(-std=c++14 -O3 -pedantic-errors)
set(LOCAL_REPO $ENV{HOME}/workspace/localrepo)

set(TARGET_NAME zmq)
set(TARGET_VERSION 4.3.4)
ExternalProject_Add(${TARGET_NAME}_source
    PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}
    URL ${LOCAL_REPO}/zeromq-${TARGET_VERSION}.tar.gz
    UPDATE_COMMAND ""
    CONFIGURE_COMMAND PKG_CONFIG_PATH=${EXTERNAL_INSTALL_LOCATION}/lib/pkgconfig ./configure --prefix=${EXTERNAL_INSTALL_LOCATION} --with-libsodium --disable-curve
    BUILD_COMMAND make
    INSTALL_COMMAND make install
    BUILD_IN_SOURCE ON
    LOG_DOWNLOAD OFF
    LOG_INSTALL ON
    DEPENDS libsodium_source
)

After building the below error is shown:

[ 50%] Built target libsodium_source
[ 56%] Built target msgpack-c_source
[ 61%] Built target leveldb_source
[ 63%] Built target logging
[ 63%] Performing configure step for 'zmq_source'
checking for ...
...
checking for libsodium... no
./configure: line 421: test: then: integer expression expected
configure: error: run
./configure: line 310: return: then: numeric argument required
./configure: line 320: exit: then: numeric argument required
gmake[3]: *** [engine/thirdparty/CMakeFiles/zmq_source.dir/build.make:93: engine/thirdparty/zmq/src/zmq_source-stamp/zmq_source-configure] Error 2
gmake[2]: *** [CMakeFiles/Makefile2:502: engine/thirdparty/CMakeFiles/zmq_source.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:249: engine/CMakeFiles/mee.dir/rule] Error 2

Some details:

1- cmake version 3.25.1
2- gcc (Debian 12.2.0-14) 12.2.0
3- g++ (Debian 12.2.0-14) 12.2.0

I removed --with-libsodium and --disable-curve. Now error is changed:

[ 64%] Performing build step for 'zmq_source'
make[4]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
Making all in doc
  CXX      tests/libtestutil_a-testutil_monitoring.o
tests/testutil_monitoring.cpp: In function ‘int64_t get_monitor_event_internal_v2(void*, uint64_t*, char**, char**, int)’:
tests/testutil_monitoring.cpp:252:30: error: comparing the result of pointer addition ‘(value_ + ((sizetype)(i * 8)))’ and NULL [-Werror=address]
  252 |         if (value_ && value_ + i)
      |                       ~~~~~~~^~~
cc1plus: all warnings being treated as errors
make[5]: *** [Makefile:5318: tests/libtestutil_a-testutil_monitoring.o] Error 1
make[4]: *** [Makefile:8217: all-recursive] Error 1
gmake[3]: *** [engine/thirdparty/CMakeFiles/zmq_source.dir/build.make:86: engine/thirdparty/zmq/src/zmq_source-stamp/zmq_source-build] Error 2
gmake[2]: *** [CMakeFiles/Makefile2:502: engine/thirdparty/CMakeFiles/zmq_source.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:249: engine/CMakeFiles/mee.dir/rule] Error 2

Is there any way to disable "all warnings being treated as errors" in ExternalProject_Add? Although I don't know after resolve this error, my problem will be solved or not.

0

There are 0 best solutions below