Как я могу связать libevent, у которого был настроен другой префикс?

Я пытаюсь связать libevent с помощью g ++, но у меня возникли проблемы, поскольку при настройке я установил каталог установки libevent с флагом —prefix. Чтобы установить libevent, я скачал последний источник, распаковал его и выполнил следующие команды в каталоге

./ configure --prefix = / home / tom / local --disable-shared  делать
сделать установку

После выполнения этих команд libevent успешно устанавливается в папку / home / tom / local. Теперь, чтобы проверить, что я могу использовать libevent, я скачал образец сервера rot13 с libevent, который можно найти в нижней части: http://www.wangafu.net/~nickm/libevent-book/01_intro.html

Для компиляции я запускаю следующую команду:

g ++ -I = / home / tom / local / include rot13server.cpp -L / 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: error: ld вернул 1 состояние выхода

Похоже, что компилятор находит включаемые файлы, но не объектные файлы.

Я также попытался настроить libevent без опции —disable-shared, а затем экспортировал / home / tom / local / lib в LD_LIBRARY_PATH, но я все еще получаю ту же ошибку с командой compile:

g ++ -I = / home / tom / local / include rot13server.cpp

Может кто-нибудь сказать мне, что я делаю не так?
Спасибо

0

Решение

Может кто-нибудь сказать мне, что я делаю не так?

Просто о все.

-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
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]