Не удается подключить библиотеку zlib к проекту.
Вот такой CMake имеется
cmake_minimum_required(VERSION 3.7)
project(PcapCatalog)
set(CMAKE_CXX_STANDARD 14)
set (HEADERS ethernet_frame.h icmp_packet.h ipv4_packet.h ipv6_packet.h pcap.h tcp_segment.h udp_datagram.h)
set(SOURCE_FILES ethernet_frame.cpp icmp_packet.cpp ipv4_packet.cpp ipv6_packet.cpp
pcap.cpp Source.cpp tcp_segment.cpp udp_datagram.cpp Source.cpp)
set (SOURCES_LIB kaitai/kaitaistream.cpp)
set(HEARERS_LIB kaitai/kaitaistream.h kaitai/kaitaistruct.h)
add_library (kaitai STATIC ${HEADERS_LIB} ${SOURCES_LIB})
include_directories(kaitai)
add_subdirectory(kaitai)
find_package( ZLIB REQUIRED )
add_executable(PcapCatalog ${HEADERS} ${SOURCE_FILES})
if ( ZLIB_FOUND )
include_directories( ${ZLIB_INCLUDE_DIRS} )
target_link_libraries( PcapCatalog ${ZLIB_LIBRARIES} )
endif( ZLIB_FOUND )
target_link_libraries(PcapCatalog kaitai)
Вот такой результат в CLion
libkaitai.a(kaitaistream.cpp.o): In function kaitai::kstream::process_zlib(std::__cxx11::basic_string, std::allocator >):
/home/cryztal/CLionProjects/PcapCatalog/kaitai/kaitaistream.cpp:456: undefined reference to inflateInit_'
/home/cryztal/CLionProjects/PcapCatalog/kaitai/kaitaistream.cpp:471: undefined reference to inflate'
/home/cryztal/CLionProjects/PcapCatalog/kaitai/kaitaistream.cpp:483: undefined reference to inflateEnd'
collect2: error: ld returned 1 exit status
CMakeFiles/PcapCatalog.dir/build.make:278: ошибка выполнения рецепта для цели «PcapCatalog»
make[3]: *** [PcapCatalog] Ошибка 1
CMakeFiles/Makefile2:67: ошибка выполнения рецепта для цели
«CMakeFiles/PcapCatalog.dir/all»
make[2]: *** [CMakeFiles/PcapCatalog.dir/all] Ошибка 2
CMakeFiles/Makefile2:79: ошибка выполнения рецепта для цели «CMakeFiles/PcapCatalog.dir/rule»
make[1]: *** [CMakeFiles/PcapCatalog.dir/rule] Ошибка 2
Makefile:162: ошибка выполнения рецепта для цели «PcapCatalog»
make: *** [PcapCatalog] Ошибка 2
Я не знаю, что за библиотека kaitai, но сообщение об ошибке линкер выдаёт именно для неё, а вовсе не для PcapCatalog.
Следовательно, если ссылка inflateInit_ расположена в библиотеке zlib, то должно быть и подключение этой библиотеки к kaitai. Нечто вроде:
target_link_libraries(kaitai ${ZLIB_LIBRARIES})
Вот только с порядком этих подключений надо разобраться.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый вечер! Необходимо реализовать полностью без CRT
Учился раньше на NetBeansРешил попробовать один из самых известных компиляторов
Что нужно добавить в CMakeList чтобы подключить Ws2_32lib?
Некоторые веб-камеры выдают перевёрнутые кадры, как правило из-за кривых драйверов