我如何链接已配置为具有不同前缀的Libevent

How can do I link libevent that has been configured to have a different prefix?

本文关键字:前缀 Libevent 配置 何链接 链接      更新时间:2023-10-16

我正在尝试使用g 链接libevent,但是由于我在配置时将libevent的安装目录设置为libevent的安装目录,因此遇到了麻烦。要安装libevent,我下载了最新的来源,将其提取并在目录中运行以下命令

./configure -prefix =/home/home/tom/local-可脱落&& make进行安装

运行这些命令后,libevent成功安装到/home/tom/local文件夹。现在,要测试我可以使用libevent,我已经下载了libevent的示例rot13服务器,可以在以下底部找到:http://www.wangafu.net/~nickm/~nickm/libevent-book/01_intro.html

编译我运行以下命令:

g    -i =/home/tom/local/incluce rot13server.cpp -l/home/home/tom/local/lib 

但是我得到以下汇编错误:

/tmp/cctwjy4k.o:在功能`alloc_fd_state(event_base*,int)':libevent.cc :(.text 0x9b):未定义的引用`event_new''libevent.cc :(.text 0xec):对`event_new'的未定义引用libevent.cc :(.Text 0x11a):未定义的引用`event_free'/tmp/cctwjy4k.o:在函数`free_fd_state(fd_state*)':libevent.cc :(.Text 0x1b6):未定义的引用`event_free'libevent.cc :(.text 0x1c9):未定义的引用`event_free'/tmp/cctwjy4k.o:在函数`do_read(int,short,void*)':libevent.cc :(.Text 0x310):未定义的引用`event_add'/tmp/cctwjy4k.o:在函数`do_write(int,short,void*)':libevent.cc :(.text 0x4da):未定义的引用`event_del'/tmp/cctwjy4k.o:在函数`do_accept(int,short,void*)':libevent.cc :(.Text 0x564):未定义的引用`evutil_make_socket_nonblocking'libevent.cc :(.text 0x5da):对`event_add'的未定义引用/tmp/cctwjy4k.o:在函数`run()'中:libevent.cc :(.Text 0x5f3):未定义的引用`event_base_new'libevent.cc :(.text 0x63f):未定义的引用`evutil_make_socket_nonblocking'libevent.cc :(.Text 0x6d2):未定义的引用`event_new'libevent.cc :(.Text 0x6e7):未定义的引用`event_add'libevent.cc :(.text 0x6f3):未定义的引用`event_base_dispatch'Collect2:错误:LD返回1个退出状态

似乎编译器正在找到包含文件,但没有找到对象文件。

我还尝试配置没有 - 可见共享选项的libevent,然后导出/home/tom/local/lib到ld_library_path,但我仍然会在compile命令中遇到相同的错误:

g    -i =/home/tom/local/include rot13server.cpp 
谁能告诉我我做错了什么?
谢谢

谁能告诉我我做错了什么?

大约所有东西

-I=/home/tom/local/include告诉GCC在=/home/tom/local/include目录中查看,这不太可能存在。

您想要:

g++ -I/home/tom/local/include rot13server.cpp -c
g++ -L/home/tom/local/lib rot13server.o -levent -o rot13server