Ошибки при компиляции кода на роутере

Есть код:

#include <iostream>
#include <pcap.h>
#include <arpa/inet.h>
#include <netinet/ip.h>

class PacketCapture {
public:
    PacketCapture(const char* device) {
        char errbuf[PCAP_ERRBUF_SIZE];
        handle = pcap_open_live(device, BUFSIZ, 1, 1000, errbuf);
        if (handle == nullptr) {
            std::cerr << "Could not open device " << device << ": " << errbuf << std::endl;
            exit(1);
        }
    }

    ~PacketCapture() {
        pcap_close(handle);
    }

    void startCapture() {
        pcap_loop(handle, 0, PacketCapture::packetHandler, nullptr);
    }

private:
    pcap_t* handle;

    static void packetHandler(u_char* args, const struct pcap_pkthdr* header, const u_char* packet) {
        std::cout << "Packet captured: " << header->len << " bytes" << std::endl;

        // Пример доступа к IP-заголовку
        struct ip* ipHeader = (struct ip*)(packet + 14); // Пропустить заголовок Ethernet (14 байт)

        char sourceIP[INET_ADDRSTRLEN];
        char destIP[INET_ADDRSTRLEN];

        inet_ntop(AF_INET, &ipHeader->ip_src, sourceIP, INET_ADDRSTRLEN);
        inet_ntop(AF_INET, &ipHeader->ip_dst, destIP, INET_ADDRSTRLEN);

        std::cout << "Source IP: " << sourceIP << ", Destination IP: " << destIP << std::endl;
    }
};

int main(int argc, char* argv[]) {
    if (argc != 2) {
        std::cerr << "Usage: " << argv[0] << " <interface>" << std::endl;
        return 1;
    }

    PacketCapture packetCapture(argv[1]);
    packetCapture.startCapture();

    return 0;
}

У меня возникают ошибки, связанные с библиотекой pcap, при компиляции этого кода на роутере.

Библиотеку pcap грузил ручками, так как opkg install libpcap дала ровно ноль результатов.

При компиляции выдаёт следующие ошибки:

Лог пересборки pcap)


Ответы (0 шт):