Ошибки в проекте с CMake

216
15 июля 2017, 08:43

Linux. Проект kaitai, файлы он сгенерировал, поэтому проблем с хедерами и вообще с кодом быть вроде не должно.

Вот такой CMake

cmake_minimum_required(VERSION 3.7)
set(CMAKE_CXX_STANDARD 14)
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)
#target_link_libraries(Source.cpp kaitai)
add_executable(PcapCatalog ${HEADERS} ${SOURCE_FILES})

Вот такие ошибки выдает CLIon

CMakeFiles/PcapCatalog.dir/ethernet_frame.cpp.o: In function ethernet_frame_t::ethernet_frame_t(kaitai::kstream*, kaitai::kstruct*, ethernet_frame_t*)': /home/cryztal/CLionProjects/PcapCatalog/ethernet_frame.cpp:11: undefined reference to kaitai::kstream::read_bytesabi:cxx11' /home/cryztal/CLionProjects/PcapCatalog/ethernet_frame.cpp:12: undefined reference to kaitai::kstream::read_bytesabi:cxx11' /home/cryztal/CLionProjects/PcapCatalog/ethernet_frame.cpp:13: undefined reference to kaitai::kstream::read_u2be()' /home/cryztal/CLionProjects/PcapCatalog/ethernet_frame.cpp:16: undefined reference to kaitai::kstream::read_bytes_fullabi:cxx11' /home/cryztal/CLionProjects/PcapCatalog/ethernet_frame.cpp:17: undefined reference to
kaitai::kstream::kstream(std::__cxx11::basic_string std::char_traits, std::allocator >&)' /home/cryztal/CLionProjects/PcapCatalog/ethernet_frame.cpp:21: undefined reference to kaitai::kstream::read_bytes_fullabi:cxx11' /home/cryztal/CLionProjects/PcapCatalog/ethernet_frame.cpp:22: undefined reference to kaitai::kstream::kstream(std::__cxx11::basic_string, std::allocator >&)' /home/cryztal/CLionProjects/PcapCatalog/ethernet_frame.cpp:26: undefined reference to kaitai::kstream::read_bytes_fullabi:cxx11' CMakeFiles/PcapCatalog.dir/icmp_packet.cpp.o: In function icmp_packet_t::icmp_packet_t(kaitai::kstream*, kaitai::kstruct*, icmp_packet_t*)': /home/cryztal/CLionProjects/PcapCatalog/icmp_packet.cpp:11: undefined reference to kaitai::kstream::read_u1()' CMakeFiles/PcapCatalog.dir/icmp_packet.cpp.o: In function icmp_packet_t::destination_unreachable_msg_t::destination_unreachable_msg_t(kaitai::kstream*, icmp_packet_t*, icmp_packet_t*)': /home/cryztal/CLionProjects/PcapCatalog/icmp_packet.cpp:44: undefined reference to kaitai::kstream::read_u1()' /home/cryztal/CLionProjects/PcapCatalog/icmp_packet.cpp:45: undefined reference to kaitai::kstream::read_u2be()' CMakeFiles/PcapCatalog.dir/icmp_packet.cpp.o: In function icmp_packet_t::time_exceeded_msg_t::time_exceeded_msg_t(kaitai::kstream*, icmp_packet_t*, icmp_packet_t*)': /home/cryztal/CLionProjects/PcapCatalog/icmp_packet.cpp:54: undefined reference to kaitai::kstream::read_u1()' /home/cryztal/CLionProjects/PcapCatalog/icmp_packet.cpp:55: undefined reference to kaitai::kstream::read_u2be()' CMakeFiles/PcapCatalog.dir/icmp_packet.cpp.o: In function icmp_packet_t::echo_msg_t::echo_msg_t(kaitai::kstream*, icmp_packet_t*, icmp_packet_t*)':

Answer 1

Судя по выводу - ругается линковщик, что не нашел библиотеку. И судя по всему, ее имя kaitai. Более того, я вижу попытку добавить ее как библиотеку, но закомментированную. Но вот только target_link_libraries должен быть после add_executable, иначе не будет работать.

READ ALSO
Перевод строки в double

Перевод строки в double

Как перевести строку типа string s = "000000000000f8bf" в значение double? Я знаю как прочитать с файла такое значение, и правильно перевестиА как со строкой...

367
Помогите задать pattern validation

Помогите задать pattern validation

Нужно чтобы могли быть введены только русские или английские буквы в верхнем и нижнем регистре, а также символы пробел или дефис

351
JS событие .on(“click”) в паре с .filter .attr (оптимизация)

JS событие .on(“click”) в паре с .filter .attr (оптимизация)

Есть код, который добавляет переменную id в URL браузера при клике на кнопку

278
Неправильно переключаются checkbox-ы

Неправильно переключаются checkbox-ы

Есть два чекбоксаОдин сразу отмечен, второй нет

240