首页 > 解决方案 > 尽管已包含所有必需的文件,但如何修复“对‘某物’的未定义引用”?

问题描述

Github :: https://github.com/mmgaggle/sslsqueeze

我正在尝试从 github 的源代码构建一个名为“ sslsqueeze ”的代码。我已经安装了所有必需的库,但是“ make ”命令由于某种原因仍然无法链接它们。我确信我在这里遗漏了一个非常简单的点/步骤,但是经过数小时的调试,我转向你。

sslsqueeze.c文件包含以下行:

**sslsqueeze** needs to be linked with -levent_core from libevent2 library.

因此,我已经安装了libevent-dev库。我运行这个命令:

make

这是我的错误列表:

sslsqueeze.o: In function `new_connection':
sslsqueeze.c:(.text+0x57): undefined reference to `bufferevent_socket_new'
sslsqueeze.c:(.text+0x68): undefined reference to `bufferevent_set_timeouts'
sslsqueeze.c:(.text+0x88): undefined reference to `bufferevent_setcb'
sslsqueeze.c:(.text+0x9d): undefined reference to `bufferevent_socket_connect'
sslsqueeze.o: In function `read_cb':
sslsqueeze.c:(.text+0x161): undefined reference to `bufferevent_read'
sslsqueeze.c:(.text+0x20d): undefined reference to `bufferevent_free'
sslsqueeze.c:(.text+0x25d): undefined reference to `bufferevent_write'
sslsqueeze.c:(.text+0x288): undefined reference to `bufferevent_write'
sslsqueeze.c:(.text+0x2b3): undefined reference to `bufferevent_write'
sslsqueeze.o: In function `event_cb':
sslsqueeze.c:(.text+0x2ed): undefined reference to `bufferevent_free'
sslsqueeze.o: In function `write_cb':
sslsqueeze.c:(.text+0x136): undefined reference to `bufferevent_enable'
sslsqueeze.o: In function `event_cb':
sslsqueeze.c:(.text+0x32c): undefined reference to `bufferevent_write'
sslsqueeze.o: In function `main':
sslsqueeze.c:(.text.startup+0x1f9): undefined reference to `event_base_new'
sslsqueeze.c:(.text.startup+0x229): undefined reference to `event_base_dispatch'
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'sslsqueeze' failed
make: *** [sslsqueeze] Error 1

经过一些研究,我尝试了以下命令,结果相同:

make -levent_core
gcc -levent_core  sslsqueeze.c -o take6
gcc -L/usr/lib/x86_64-linux-gnu  sslsqueeze.c -o take8

以下也没有成功。他们给出了“找不到文件”错误。

gcc -L/usr/lib/x86_64-linux-gnu -libevent_core.so sslsqueeze.c -o take7
gcc -L/usr/lib/x86_64-linux-gnu -libevent_core.a sslsqueeze.c -o take7

最后一条信息。头文件在/usr/include/event2

libevent_core 文件位于/usr/lib/x86_64-linux-gnu/(2 个文件,一个扩展名为 .so,另一个扩展名为 .a)

任何帮助,将不胜感激!

标签: clinuxcompiler-errorslinker

解决方案


推荐阅读