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*)':
Судя по выводу - ругается линковщик, что не нашел библиотеку. И судя по всему, ее имя kaitai. Более того, я вижу попытку добавить ее как библиотеку, но закомментированную. Но вот только target_link_libraries должен быть после add_executable, иначе не будет работать.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как перевести строку типа string s = "000000000000f8bf" в значение double? Я знаю как прочитать с файла такое значение, и правильно перевестиА как со строкой...
Нужно чтобы могли быть введены только русские или английские буквы в верхнем и нижнем регистре, а также символы пробел или дефис
Есть код, который добавляет переменную id в URL браузера при клике на кнопку