Я хочу установить tmux на компьютер, на котором у меня нет прав root. Я уже скомпилировал libevent и установил его, $HOME/.bin-libevent
и теперь я хочу скомпилировать tmux, но настройка всегда заканчивается configure: error: "libevent not found"
, хотя я пытался указать на каталог libevent в Makefile.am
, изменив LDFLAGS
и CPPFLAGS
, но, похоже, ничего не работает.
Как я могу сказать системе искать в моем домашнем каталоге файл libevent?
Ответы:
Пытаться:
(Я уверен, что должен быть лучший способ настроить пути к библиотекам с помощью autoconf. Обычно есть
--with-libevent=dir
опция. Но здесь, кажется, такой опции нет.)источник
make
наконец работать. Я попытался установить другие переменные окружения и установитьprefix
иexec-prefix
, но, как только я включил эти флаги, они действительно были собраны../configure CFLAGS="-I$DIR/include:/usr/otherdir" LDFLAGS="-L$DIR/lib:/usr/otherdir"
но безуспешноCFLAGS="-Idir1 -Idir2 -Idir3" LDFLAGS="-Ldira -Ldirb -Ldirb"
libevent not found
ошибка ушла, но теперь я получаю то же самое сncurses
:curses not found
. Мои,libevent
а такжеncurses
установки находятся в$HOME/.local/
libevent
, используйтеLIBEVENT_CFLAGS
иLIBEVENT_LIBS
вместоCFLASG
иLDFLAGS
. Дляncurse
использованияLIBTINFO_CFLAGS
иLIBTINFO_LIBS
@AalokУ меня была похожая проблема, и я обнаружил, что после запуска
sudo yum install libevent-devel
я смог успешно создать и установить tmux.РЕДАКТИРОВАТЬ: Если вы устанавливаете это на компьютере Red Hat, вам также необходимо посетить выбор каналов для вашего сервера в сети Red Hat Network и добавить дополнительный канал RHEL Server. Это даст вам доступ к пакетам -devel для libevent (базовый и дополнительный каналы не предоставляют его).
источник
У меня была та же проблема с RHEL 5.4, и я обнаружил, что libevent установлен, но нет символической ссылки libevent.so, только реальная версия библиотеки:
Таким образом,
ln -s /usr/lib64/libevent-1.1a.so.1 /usr/lib64/libevent.so
работает довольно хорошо для меня без необходимости устанавливать или изменять что-либо. Понятия не имею, почему свободный RPM RedHat не создал символическую ссылку. Может быть, ошибка, чтобы сообщить?Но сейчас жалуюсь на это
error: event.h: No such file or directory
.источник
error: event.h: No such file or directory
.tmux='LD_PRELOAD=/opt-local/lib/libevent-2.0.so.5 /opt-local/bin/tmux'
. Работает как шарм!Перед настройкой и компиляцией tmux (или любой другой программы) вы должны сообщить ему, где он может найти нужные библиотеки. Если вы установили какую-то библиотеку в нестандартном месте, вы можете использовать переменную среды,
LD_LIBRARY_PRELOAD
чтобы указать, где расположены некоторые библиотеки.Я твой случай:
А затем продолжите настройку / компиляцию.
Позже, двоичному файлу также нужно будет знать, где можно найти ваши дополнительные библиотеки, поэтому вам нужно будет поместить
export
оператор в ваш.bashrc
(если bash - это ваша оболочка входа в систему).источник
find .bin-libevent -name 'libevent.so*'
показывает?$ find .bin-libevent -name 'libevent.so*'
находит.bin-libevent/lib/libevent.so
$HOME/.bin-libevent/lib
(обновленный ответ)Суть есть на https://gist.github.com/ryin/3106801 :
источник
ncurses
подкаталог любого указанного пути include / library. Странный выбор дизайна. Это исправило это для меня.У меня та же проблема, и кажется, что самый голосующий ответ не сработал для меня. Я использую рабочую станцию Fedora 22. Вот что я сделал, чтобы это исправить: 1. Установить
libevent-devel
пакет. 2. Установитьncurses-devel
пакетПервый из них не решит никаких
event.h
проблем, а второй решит, не может найти проблему проклятий. Кстати, метод softlink выше также работает для меня во время./configure
.источник
Принятый ответ хорош, но по крайней мере в tmux 2.8 есть поддержка для определения местоположения libevent с помощью переменных среды.
Сначала установите libevent в нужном месте. Я использовал cmake, потому что у меня была проблема с autoconf
Затем соберите и установите tmux:
LIBEVENT_CFLAGS
Переопределения переменных средыpkg-config
включают в себя параметры libevent иLIBEVENT_LIBS
переопределяют параметры флага компоновщика.источник
В CentOS 6 скомпилируйте и установите libevent в
/opt/libevent
каталоге с помощью команды:Затем установите мое приложение (в данном случае это был PgBouncer)
Вы можете изменить каталоги, где вы хотите.
источник