Je souhaite installer tmux sur une machine sur laquelle je n'ai pas d'accès root. J'ai déjà compilé libevent et l'ai installé $HOME/.bin-libevent
et maintenant je veux compiler tmux, mais configure se termine toujours par configure: error: "libevent not found"
, même si j'ai essayé de pointer vers le répertoire libevent dans Makefile.am
en modifiant LDFLAGS
et CPPFLAGS
, mais rien ne semble fonctionner.
Comment puis-je dire au système de rechercher le libevent dans mon répertoire personnel?
Réponses:
Essayer:
(Je suis sûr qu'il doit exister un meilleur moyen de configurer les chemins de bibliothèque avec autoconf. Généralement, il existe une
--with-libevent=dir
option. Mais ici, il semble qu'il n'y en ait pas.)la source
make
finalement fait fonctionner. J'ai essayé de définir d' autres variables d'environnement et la miseprefix
etexec-prefix
, mais une fois que j'inclus ces drapeaux farcir réellement obtenu construit../configure CFLAGS="-I$DIR/include:/usr/otherdir" LDFLAGS="-L$DIR/lib:/usr/otherdir"
mais pas de succèsCFLAGS="-Idir1 -Idir2 -Idir3" LDFLAGS="-Ldira -Ldirb -Ldirb"
libevent not found
erreur suis parti, mais maintenant je reçois la même chose avecncurses
:curses not found
. Monlibevent
ainsi que desncurses
installations sont à la fois$HOME/.local/
libevent
, utiliserLIBEVENT_CFLAGS
etLIBEVENT_LIBS
au lieu deCFLASG
etLDFLAGS
. Pourncurse
, utiliserLIBTINFO_CFLAGS
etLIBTINFO_LIBS
@AalokJ'avais un problème similaire et
sudo yum install libevent-devel
j'ai découvert qu'après mon exécution, je pouvais créer et installer tmux avec succès.EDIT: Si vous l’installez sur une machine Red Hat, vous devrez également consulter la sélection des canaux de votre serveur sur le réseau Red Hat et ajouter le canal facultatif du serveur RHEL. Cela vous donnera accès aux paquets -devel pour libevent (les canaux de base et supplémentaires ne le fournissent pas).
la source
J'ai eu le même problème sur RHEL 5.4 et réellement trouvé que libevent est installé mais il n'y a pas de lien symbolique libevent.so, seulement la version réelle de la bibliothèque:
Donc, ça
ln -s /usr/lib64/libevent-1.1a.so.1 /usr/lib64/libevent.so
marche plutôt bien pour moi sans qu'il soit nécessaire d'installer ou de modifier quoi que ce soit. Aucune idée pourquoi libevent rpm de RedHat n'a pas créé le lien symbolique. Peut-être un bug à signaler?Mais maintenant, il se plaint pour cela:
error: event.h: No such file or directory
.la source
error: event.h: No such file or directory
.tmux='LD_PRELOAD=/opt-local/lib/libevent-2.0.so.5 /opt-local/bin/tmux'
. Fonctionne comme un charme!Avant la configuration et la compilation de tmux (ou de tout programme), vous devez lui indiquer où trouver les bibliothèques dont il a besoin. Si vous avez installé une bibliothèque dans un emplacement non standard, vous pouvez utiliser la variable d'environnement
LD_LIBRARY_PRELOAD
pour indiquer l'emplacement de certaines bibliothèques.Je votre cas:
Et puis continuez avec la configuration / compilation.
Plus tard, le binaire devra également savoir où se trouvent vos bibliothèques supplémentaires. Vous devrez donc placer la
export
déclaration dans votre.bashrc
(si bash est votre shell de connexion).la source
find .bin-libevent -name 'libevent.so*'
montre?$ find .bin-libevent -name 'libevent.so*'
trouve.bin-libevent/lib/libevent.so
$HOME/.bin-libevent/lib
(mis à jour la réponse)Il existe un élément essentiel sur https://gist.github.com/ryin/3106801 :
la source
ncurses
sous - répertoire du chemin d’inclusion / bibliothèque que vous spécifiez. Choix de conception étrange. Cela a résolu le problème pour moi.J'ai le même problème et il semble que la réponse la plus votée n'a pas fonctionné pour moi. J'utilise Fedora 22 Workstation. Voici ce que j'ai fait pour résoudre ce problème: 1. Installez le
libevent-devel
paquet. 2. Installer lencurses-devel
paquetLe premier ne résoudra aucun
event.h
problème et le second ne résoudra pas le problème des malédictions. BTW, la méthode de softlink ci-dessus fonctionne également pour moi pendant./configure
.la source
La réponse acceptée est bonne, mais à partir d’au moins tmux 2.8, il est possible de spécifier l’emplacement de libevent à l’aide de variables d’environnement.
Installez d'abord libevent à l'emplacement souhaité. J'ai utilisé cmake parce que j'avais un problème avec autoconf
Ensuite, construisez et installez tmux:
La variable d'environnement
LIBEVENT_CFLAGS
remplacepkg-config
les paramètres d'inclusion pour libevent etLIBEVENT_LIBS
les paramètres d'indicateur de l'éditeur de liens.la source
Sur CentOS 6, compilez et installez libevent dans un
/opt/libevent
répertoire à l’aide de la commande suivante:Ensuite, installez mon application (dans ce cas c'était PgBouncer)
Vous pouvez changer les répertoires où vous voulez.
la source