Компилирование Opensips на Clion: отсутствует tap.h, какая библиотека отсутствует?
Я пытаюсь скомпилировать Opensips на Clion, так как хочу отладить и пройтись по коду. Я попытался добавить переменные среды через следующие строки в CMakeLists.txt:
set(CMAKE_C_FLAGS "-funroll-loops -Wcast-align -Wall -minline-all-stringops -falign-loops -ftree-vectorize -mtune=nocona -Wold-style-definition -Wmissing-field-initializers -Wredundant-decls" )
add_definitions(-DPKG_MALLOC -DSHM_MMAP -DUSE_MCAST -DDISABLE_NAGLE -DSTATISTICS -DHAVE_RESOLV_RES -DF_MALLOC -DF_MALLOC_OPTIMIZATIONS -DNAME='"opensips"' -DVERSION='"2.4.2"' -DARCH='"x86_64"' -DOS='"linux"' -DCOMPILER='"gcc 4.8.5"' -D__CPU_x86_64 -D__OS_linux -D__SMP_yes -DCFG_DIR='"/usr/local//etc/opensips/"' -DVERSIONTYPE='"git"' -DTHISREVISION='"c035556"' -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_EPOLL -DHAVE_SIGIO_RT -DHAVE_SELECT)
================================================== =========
Я получаю следующие ошибки и не уверен, какой пакет отсутствует:
- Файлы сборки были записаны в: /root/opensips-2.4/cmake-build-debug [ 0%] Сборка объекта C CMakeFiles/opensips_2_4.dir/cachedb/test/test_backends.co [ 0%] Сборка объекта C CMakeFiles/opensips_2_4.dir/cachedb/example/example_cachedb.co /root/opensips-2.4/cachedb/test/test_backends.c:21:17: фатальная ошибка: tap.h: такого файла или каталога нет
включают
^ Компиляция прекращена. gmake [2]: * [CMakeFiles/opensips_2_4.dir/cachedb/test/test_backends.co] Ошибка 1 gmake[2]: * Ожидание незавершенных заданий.... /root/opensips-2.4/cachedb/example/example_cachedb.c:75:2: предупреждение: символьная константа слишком длинная для ее типа [включено по умолчанию] MODULE_VERSION, ^ /root/opensips-2.4/cachedb/example/example_cachedb.c:75:2: предупреждение: инициализация делает указатель целочисленным без приведение [включено по умолчанию] /root/opensips-2.4/cachedb/example/example_cachedb.c:75:2: предупреждение: (близка к инициализации для export.version) [включено по умолчанию] В файл включен из /root/opensips-2.4/cachedb/example/../../sr_module.h:52:0, из /root/opensips-2.4/cachedb/example/example_cachedb.c:32: /root/opensips-2.4/cachedb/example/../../version.h:26:37: ошибка: ожидается '}' перед строковой константой
определить имя OPENSIPS_FULL_VERSION "" VERSION "(" ARCH "/" OS ")"
^ /root/opensips-2.4/cachedb/example/../../sr_module.h:102:2: примечание: в расширении макроса OPENSIPS_FULL_VERSION OPENSIPS_FULL_VERSION, ^ /root/opensips-2.4/cachedb/example/example_cachedb.c:75:2: примечание: в расширении макроса MODULE_VERSION MODULE_VERSION, ^ /root/opensips-2.4/cachedb/example/example_cachedb.c:75:2: предупреждение: символьная константа слишком длинная для ее типа [включено по умолчанию] /root/opensips-2.4/cachedb/example/example_cachedb.c:75:2: предупреждение: символьная константа слишком длинная для ее типа [включено по умолчанию] /root/opensips-2.4/cachedb/example/example_cachedb.c: 75: 2: предупреждение: символьная константа слишком длинна для ее типа [включено по умолчанию] /root/opensips-2.4/cachedb/example/example_cachedb.c:89:1: предупреждение: отсутствует инициализатор для поля 'compile_flags' из 'struct module_exports '[-Wmissing-field-initializers] }; ^ В файле, включенном в /root/opensips-2.4/cachedb/example/example_cachedb.c:32:0: /root/opensips-2.4/cachedb/example/../../sr_module.h:175:8: note: здесь объявлено 'compile_flags' char compile_flags; /! <флаги компиляции, используемые в модуле / ^ /root/opensips-2.4/cachedb/example/example_cachedb.c:95:12: предупреждение: 'mod_init' определено, но не использовано [-Wunused-function] static int mod_init(void) ^ /root/opensips-2.4/cachedb/example/example_cachedb.c:137:12: предупреждение: 'child_init' определено, но не используется [-Wunused-function] static int child_init(int rank) ^ /root/opensips-2.4/cachedb/example/example_cachedb.c:154:13: предупреждение: 'destroy' определено, но не используется [-Wunused-function] static void destroy(void) ^ /root/opensips-2.4/cachedb/example/example_cachedb.c:59:21: предупреждение: "cmds" определено, но не используется [-Wunused-variable] static cmd_export_t cmds[]= ^ /root/opensips-2.4/cachedb/example/example_cachedb.c:65:23: предупреждение: "params" определяется, но не используется [-Wunused-variable] статический param_export_t params [] = {^ gmake [2]: [CMakeFiles/opensips_2_4.dir/cachedb/example/example_cachedb.co] Ошибка 1 gmake [1]: * [CMakeFiles / opensips_2_4.dir / all] Ошибка 2 gmake: *** [все] Ошибка 2
1 ответ
tap.h
ошибка связана с тем, что вы включили поддержку модульного тестирования в вашей сборке через -DUNIT_TESTS
флаг в Makefile.conf
, Если вы все еще хотите пойти по этому пути и запустить модульные тесты, связанные с cachedb для MongoDB/Cassandra:
- скачать libtap, отсюда
make
а такжеsudo make install