Как я могу скомпилировать ndpiReader.c, который поставляется с библиотекой nDPI в Windows?

Я хочу создать .exe из ndpiReader.c демо-программа, которая поставляется с nDPI library. Мне удалось скомпилировать его на Ubuntu с помощью команд, указанных на их странице github как ниже:

./autogen.sh
./configure
make

Я попытался скомпилировать его с помощью GCC внутри Ubuntu, но мне это не удалось. Я также попытался использовать pcapExample.sln скомпилировать его в Visual Studio 2012, но я продолжаю получать сообщения об ошибках, такие как:

ошибка 29 ошибка C1083: не удается открыть файл include: 'ndpi_api.h': Нет такого файла или каталога

хотя ndpi_api.h и все другие файлы, для которых я получаю эту ошибку, уже перечислены в обозревателе решений проекта. Кто-нибудь действительно смог сделать исполняемый файл win32 из этого ? Если да, укажите шаги, требования или ссылку.

nDPI lib размещен здесь:https://github.com/ntop/nDPI

ndpiReader.c хранится здесь: https://github.com/ntop/nDPI/tree/dev/example

pcapExample.sln размещается здесь:https://github.com/ntop/nDPI/tree/dev/example/Win32

1 ответов


Я видел из ваших других вопросов, что вы уже пытались скомпилировать это с CYGWIN и столкнулся с рядом проблем.

вот пошаговое руководство, которое я только что использовал для компиляции nDPI (включая ndpiReader.EXE-файл примера):

установить CYGWIN:

  1. примите каталоги по умолчанию, и выберите зеркало.
  2. на Выберите Пакеты шаг разверните в Devel категория, и выберите следующие пакеты разработчика для установить:
    • autoconf для
    • autoconf2.5
    • automake
    • automake1.15
    • binutils
    • cmake
    • cygwin-devel
    • ССЗ-основной
    • gcc-tools-epoch2-autoconf
    • gcc-инструменты-epoch2-automake
    • libtool
    • сделать
    • pkg-config
    • w32api-заголовки
    • w32api-runtime

установить libpcap под CYGWIN:

  1. скачать и распаковать пакет разработчика Winpcap.
  2. копировать libpacket.a и libwpcap.от\WpdPack Либ\ до Cygwin\Либ\
  3. в cygwin\lib скопируйте libwpcap.a в libpcap.а
  4. в cygwin\usr\include создайте каталог pcap
  5. скопируйте все заголовки из WpdPack\Include в cygwin\usr\include\pcap

Я уверен, что вы уже установили winpcap как часть все остальное вы пробовали, но дважды проверьте, что необходимо (пакет.dll и wpcap.dll) библиотеки уже находятся в cygwin\c\WINDOWS\system32.

теперь у вас есть все необходимые инструменты и библиотеки для компиляции nDPI в Windows!

здание nDPI

  1. Загрузите и распакуйте nDPI снова в чистом каталоге, чтобы вы не споткнулись о какие-либо проблемы из предыдущей сборки, которую вы пробовали.

  2. открыть a Терминал CYGWIN и cd в каталог nDPI.

  3. выполнить autogen.sh

    ./autogen.sh
    

    Это должно завершиться без каких-либо ошибок.

    если он остановится на "somepackage отсутствует: установите его и повторите попытку: "вы пропустили установку пакета CYGWIN, который необходим для создания источника.

    если он останавливается с "отсутствует libpcap(-dev) библиотека", дважды проверьте предыдущие шаги, которые вы сделали, чтобы скопировать в libpcap.a в cygwin \ lib.

  4. autogen.sh следует запустить этап configure для вас. (Если это не так, или часть этого этапа терпит неудачу, вы можете повторно запустить configure после исправления любой проблемы.)

    ./configure
    

    после проверки ряда вещей configure завершится созданием файла Makefile.

  5. создайте библиотеку nDPI, запустив make.

    make
    

    он построит библиотеку, а затем попытается построить примеры, но не потому что он не может найти на PCAP.h

  6. cd в каталог примера и вручную скомпилировать ndpiReader.с добавлением - I / usr / include / pcap команды:

    cd example/
    gcc -DHAVE_CONFIG_H -I. -I.. -I../src/include -I/usr/include/pcap -g -O2 -c -o ndpiReader.o ndpiReader.c
    

    я включил свою команду в качестве примера. Если ваша команда компилятора немного отличается, просто добавьте-I/usr/include / pcap к тому, что вызвал ваш Makefile.

  7. выйдите директория примера, и возобновите делать.

    cd ..
    make
    

    этот последний шаг свяжет ndpiReader с библиотекой ndpi и создаст исполняемый файл, который вы ищете.