gpt4 book ai didi

c++ - 添加所需库后使用 TShark C++ 源文件剖析消息时 undefined reference

转载 作者:行者123 更新时间:2023-11-28 04:23:55 26 4
gpt4 key购买 nike

我想使用 TShark 源文件来剖析 C++ 中的消息(例如 rrc sib 3 消息)。我已经完成了以下步骤:

  1. 下载 wireshark-2.6.6.tar.xz 并转到解压缩的文件夹。
  2. sudo ./configure --prefix=/home/***/build/
  3. sudo make -j 8
  4. sudo make install(之后我有一个 build 文件夹,其中包含 binincludelibshare 个文件夹。)
  5. 打开 C++ ide (Qt) 并添加以下库:

     LIBS += -L/home/***/build/lib/ -lwireshark \
    -L/home/***/build/lib/ -lwiretap \
    -L/home/***/build/lib/ -lwsutil \
    -L/home/***/build/lib/ -lwscodecs
  6. 当然我包括这样的路径:

     INCLUDEPATH += /home/***/build/include/wireshark
    DEPENDPATH += /home/***/build/include/wireshark
  7. 还有我在第 1 步中下载的 wireshark 源文件夹:

    INCLUDEPATH += /home/***/wireshark-2.6.6
    DEPENDPATH += /home/***/wireshark-2.6.6
  8. 在 Qt 中打开 TShark.c 文件 (/home/***/wireshark-2.6.6/tshark.c)。

在这些步骤之后,似乎一切都应该没问题,但我有大约 70 个函数的 undefined reference ,我认为我应该在步骤 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);
}
...
...
...

/build/include/wireshark/epan/funnel.h 中的 initialize_funnel_ops() 函数给出了这个错误:

error: undefined reference to `initialize_funnel_ops'

此错误也出现在其他一些函数中。

那我该如何解决呢?我应该添加一个新库吗?还是我在添加库和路径时犯了错误?

最佳答案

顶级 Wireshark CMakeLists.txt file 应该可以帮助您确定 tshark 需要哪些库和文件。其中一个依赖项是 ${TSHARK_TAP_SRC} ,其中包括 ${CMAKE_SOURCE_DIR}/ui/cli/tap-funnel.ctap-funnel.c是定义 initialize_funnel_ops() 的文件。

关于c++ - 添加所需库后使用 TShark C++ 源文件剖析消息时 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54860540/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com