首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加所需库后使用TShark C++源文件剖析消息时未定义的引用

添加所需库后使用TShark C++源文件剖析消息时未定义的引用
EN

Stack Overflow用户
提问于 2019-02-25 06:23:01
回答 1查看 126关注 0票数 0

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

  1. 下载wireshark-2.6.6.tar.xz并转到解压文件夹。
  2. sudo ./configure --prefix=/home/***/build/
  3. sudo make -j 8
  4. sudo make install (在此之后,我有一个构建文件夹,包含bin、include、lib和共享文件夹)。
  5. 打开C++ ide (Qt)并添加以下库: LIBS -L/ += /**/构建/lib/ -lwireshark \-L/home/**/构建/lib/ -lwiretap \-L/home/**/构建/lib/ -lwsutil \-L/home/**/构建/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个函数的引用没有定义,我认为应该在步骤5中添加一些其他库。

我的代码(tshark.c)的一部分如下:

代码语言:javascript
复制
...
...
...
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中提供了以下错误:

代码语言:javascript
复制
error: undefined reference to `initialize_funnel_ops'

这个错误也适用于其他一些功能。

那我该怎么解决呢?我应该增加一个新的图书馆吗?还是我在添加库和路径时犯了错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-25 14:11:45

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54860540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档