компилирование Opensips на Clion: отсутствует tap.h, какая библиотека отсутствует? - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь скомпилировать 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.c.o [0%] Построение объекта C CMakeFiles / opensips_2_4.dir / cachedb / example / example_cachedb.c.o /root/opensips-2.4/cachedb/test/test_backends.c:21:17: фатальная ошибка: tap.h: такого файла или каталога нет

включает

^ компиляция прекращена. gmake [2]: * [CMakeFiles / opensips_2_4.dir / cachedb / test / test_backends.c.o] Ошибка 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: note: в расширении макроса "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: примечание: здесь указаны «compile_flags» char compile_flags; /! <флаги компиляции, используемые в модуле <em>/ ^ /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: предупреждение: «уничтожить» определено, но не используется [-Wunused-function] статическая пустота уничтожить (пустота) ^ /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: предупреждение: «параметры» определены, но не используются [-Wunused-variable] статический param_export_t params [] = { ^ gmake [2]: [CMakeFiles / opensips_2_4.dir / cachedb / example / example_cachedb.c.o] Ошибка 1 gmake [1]: * [CMakeFiles / opensips_2_4.dir / all] Ошибка 2 gmake: *** [все] Ошибка 2

1 Ответ

0 голосов
/ 02 ноября 2018

Ошибка tap.h связана с тем, что вы включили поддержку модульного тестирования в вашей сборке через флаг -DUNIT_TESTS в Makefile.conf. Если вы все еще хотите пойти по этому пути и запустить модульные тесты, связанные с cachedb для MongoDB / Cassandra:

  • скачать libtap, с здесь
  • make и sudo make install
...