我正在尝试使用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