首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在编译libfluid样例控制器时对“event_base_del_virtual”的未定义引用

在编译libfluid样例控制器时对“event_base_del_virtual”的未定义引用
EN

Stack Overflow用户
提问于 2018-10-08 14:16:50
回答 1查看 231关注 0票数 1

我正在尝试使用libfluid来编写我自己的OpenFlow控制器。但是首先,我想构建样本控制器来了解它是如何工作的。在编译示例控制器时,我得到了以下错误:(这是我尝试make msg_controller时遇到的错误)

代码语言:javascript
复制
c++ msg/MsgController.cc -lfluid_msg -lfluid_base -I. -O3 -std=c++0x -o msg_controller
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libfluid_base.so: undefined reference to `event_base_del_virtual'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libfluid_base.so: undefined reference to `event_base_add_virtual'
collect2: error: ld returned 1 exit status
Makefile:10: recipe for target 'msg_controller' failed
make: *** [msg_controller] Error 1

在构建示例控制器之前,我遵循步骤构建libfluid_baselibfluid_msg。在构建这两个库时,我得到了以下提示,我认为这可能有助于解决我的问题

如果您碰巧希望在给定目录LIBDIR中针对已安装的库进行链接,则必须使用libtool并指定库的完整路径名,或者在链接期间使用'-LLIBDIR‘标志,并至少执行以下操作之一:

  • 在执行期间将LIBDIR添加到“LD_LIBRARY_PATH”环境变量中
  • 在链接期间将LIBDIR添加到“LD_RUN_PATH”环境变量中
  • 使用'-Wl,-rpath -Wl,LIBDIR‘链接标志
  • 让系统管理员将LIBDIR添加到'/etc/ld.so.conf‘

有关共享库的任何操作系统文档都可以获得更多信息,如ld(1)和ld.so(8)手册页。

是否由于库链接不正确而导致未定义的引用错误?我需要对c++命令做一些更改吗?

我尝试了命令grep -rn "event_base_del" /usr/libgrep -rn "event_base_add" /usr/lib

event_base_del的输出如下(event_base_add的输出相同)

代码语言:javascript
复制
Binary file /usr/lib/libfluid_base.a matches
Binary file /usr/lib/libfluid_base.so.0.0.0 matches
Binary file /usr/lib/x86_64-linux-gnu/libevent.a matches
Binary file /usr/lib/x86_64-linux-gnu/libevent-2.1.so.6.0.2 matches
Binary file /usr/lib/x86_64-linux-gnu/libevent_core.a matches
Binary file /usr/lib/x86_64-linux-gnu/libevent_core-2.1.so.6.0.2 matches

这是否意味着它正在正确地连接?因为libfluid_base.so只是libfluid_base.so.0.0.0的链接

代码语言:javascript
复制
lrwxrwxrwx  1 root root       22 Oct  8 09:36 libfluid_base.so -> libfluid_base.so.0.0.0

那我该怎么解决呢?

在我尝试使用-levent_core或-levnet来获得针对libevent的示例代码链接之后。错误继续存在,这可能是因为我现在使用的libevent版本与当前版本的libfluid.By不兼容,就像我使用Ubuntu18.04那样。

我将尝试在ubuntu16.04上构建它,并使用旧版本的libevent,看看它是否有效。

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

https://stackoverflow.com/questions/52704269

复制
相关文章

相似问题

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