Как я могу скомпилировать 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:
- примите каталоги по умолчанию, и выберите зеркало.
- на Выберите Пакеты шаг разверните в 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:
- скачать и распаковать пакет разработчика Winpcap.
- копировать libpacket.a и libwpcap.от\WpdPack Либ\ до Cygwin\Либ\
- в cygwin\lib скопируйте libwpcap.a в libpcap.а
- в cygwin\usr\include создайте каталог pcap
- скопируйте все заголовки из WpdPack\Include в cygwin\usr\include\pcap
Я уверен, что вы уже установили winpcap как часть все остальное вы пробовали, но дважды проверьте, что необходимо (пакет.dll и wpcap.dll) библиотеки уже находятся в cygwin\c\WINDOWS\system32.
теперь у вас есть все необходимые инструменты и библиотеки для компиляции nDPI в Windows!
здание nDPI
Загрузите и распакуйте nDPI снова в чистом каталоге, чтобы вы не споткнулись о какие-либо проблемы из предыдущей сборки, которую вы пробовали.
открыть a Терминал CYGWIN и cd в каталог nDPI.
-
выполнить autogen.sh
./autogen.sh
Это должно завершиться без каких-либо ошибок.
если он остановится на "somepackage отсутствует: установите его и повторите попытку: "вы пропустили установку пакета CYGWIN, который необходим для создания источника.
если он останавливается с "отсутствует libpcap(-dev) библиотека", дважды проверьте предыдущие шаги, которые вы сделали, чтобы скопировать в libpcap.a в cygwin \ lib.
-
autogen.sh следует запустить этап configure для вас. (Если это не так, или часть этого этапа терпит неудачу, вы можете повторно запустить configure после исправления любой проблемы.)
./configure
после проверки ряда вещей configure завершится созданием файла Makefile.
-
создайте библиотеку nDPI, запустив make.
make
он построит библиотеку, а затем попытается построить примеры, но не потому что он не может найти на PCAP.h
-
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.
-
выйдите директория примера, и возобновите делать.
cd .. make
этот последний шаг свяжет ndpiReader с библиотекой ndpi и создаст исполняемый файл, который вы ищете.