Я хочу использовать исходные файлы TShark для разбора сообщения (например, rrc sib 3 message) в C ++.Я сделал следующие шаги:
- Загрузите
wireshark-2.6.6.tar.xz
и перейдите в извлеченную папку. sudo ./configure --prefix=/home/***/build/
sudo make -j 8
sudo make install
(После этого у меня есть папка build , которая содержит bin , include , lib , share папки.) Откройте C ++ ide (Qt) и добавьте следующие библиотеки:
LIBS += -L/home/***/build/lib/ -lwireshark \
-L/home/***/build/lib/ -lwiretap \
-L/home/***/build/lib/ -lwsutil \
-L/home/***/build/lib/ -lwscodecs
Конечно, я включаю путь следующим образом:
INCLUDEPATH += /home/***/build/include/wireshark
DEPENDPATH += /home/***/build/include/wireshark
А также папка с исходным кодом wireshark, которую я скачал в шаге 1:
INCLUDEPATH += /home/***/wireshark-2.6.6
DEPENDPATH += /home/***/wireshark-2.6.6
Откройте файл TShark.c (/home / *** / wireshark-2.6.6 / tshark.c) в Qt.
После этих шагов кажется, что все должно быть в порядке, но у меня есть неопределенная ссылка наоколо 70 функций, которые я думаю, что я должен добавить некоторые другие библиотеки на шаге 5.
Часть моего кода (tshark.c
) выглядит следующим образом:
...
...
...
static int
real_main(int argc, char *argv[])
{
...
initialize_funnel_ops();
return exit_status;
}
int
main(int argc, char *argv[])
{
return real_main(argc, argv);
}
...
...
...
Функция initialize_funnel_ops()
который в /build/include/wireshark/epan/funnel.h
дает эту ошибку:
error: undefined reference to `initialize_funnel_ops'
Эта ошибка появляется для некоторых другихЭто тоже функции.
Так как я могу это решить?Должен ли я добавить новую библиотеку?Или я ошибся при добавлении библиотек и пути?