在 ubuntu 服务器 14.04 上链接的 libevent 问题

Posted

技术标签:

【中文标题】在 ubuntu 服务器 14.04 上链接的 libevent 问题【英文标题】:libevent problems with linking on ubuntu server 14.04 【发布时间】:2015-08-29 08:01:03 【问题描述】:

我在 ubuntu 14.04 LTS 服务器上将 libevent 链接到我的 c 项目时遇到问题。在 ArchLinux 和 Centos7 上一切正常(我在虚拟机上运行 ubuntu 和 centos)。 这是我的 Makefile:

TARGET: opoznienia

CFLAGS = -Wall -O2 --std=c11 -D DEBUG=1 $(shell pkg-config --cflags libevent_pthreads) -pthread -Wextra
LFLAGS = -Wall $(shell pkg-config --libs libevent_pthreads) -pthread -Wextra
OFILES = main.o err.o dropnobody.o ... <-- tl;tr

opoznienia: $(OFILES)
    $(CC) $(LFLAGS) $^ -o $@

.PHONY: clean TARGET
clean:
    rm -f opoznienia *.o *~ *.bak

在 ubuntu 上出现错误:

telnet_server.c:(.text+0xfc): undefined reference to `event_new'

【问题讨论】:

请同时发布编译器输出。导致此错误消息 【参考方案1】:

GNU 链接器从左到右解析目标文件参数(.o .a .so),试图匹配所有未定义的符号。并且目标文件的顺序在这里非常重要,因为如果在当前目标文件之前的参数列表中传递的任何目标文件没有使用任何符号,GNU 链接器就会“忘记”这些符号。

在您的情况下,请尝试更改联动订单:

$(CC) $(LFLAGS) $^ -o $@

收件人:

$(CC) $^ $(LFLAGS) -o $@

如果这有帮助,请告诉我们。

【讨论】:

以上是关于在 ubuntu 服务器 14.04 上链接的 libevent 问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Facebook 上链接的规范网址而不是真实网址。动态 OpenGraph 标记为空

MySQL 数据库在 ubuntu 14.04 的 XAMPP-1.8.3.4 中停止

adb 服务器已过期。杀死...无法绑定'tcp:5037' ADB 服务器没有确认 * 无法在 ubuntu 14.04 LTS 中启动守护进程 *

如何在 Ubuntu Linux 14.04 LTS 上安装php7

OpenGL在Ubuntu 14.04 中的设置与编程

Python 2.7.6 安装lxml模块[ubuntu14.04 LTS]