为什么从源代码构建 tmux 时 gcc 找不到 libevent?

vol*_*ker 70 compiling make configure autoconf

我想在没有 root 访问权限的机器上安装 tmux。我已经编译了 libevent 并安装了它$HOME/.bin-libevent,现在我想编译 tmux,但 configure 总是以 结尾configure: error: "libevent not found",即使我试图Makefile.am通过修改LDFLAGS和指向 libevent 目录CPPFLAGS,但似乎没有任何效果。

如何告诉系统在我的主目录中查找 libevent?

Sté*_*nez 66

尝试:

DIR="$HOME/.bin-libevent"
./configure CFLAGS="-I$DIR/include" LDFLAGS="-L$DIR/lib"
Run Code Online (Sandbox Code Playgroud)

(我敢肯定一定有更好的方法来配置带有 autoconf 的库路径。通常有一个--with-libevent=dir选项。但在这里,似乎没有这样的选项。)

  • 这是使 `make` 最终起作用的方法。我尝试设置其他环境变量并设置`prefix`和`exec-prefix`,但是一旦我包含了这些标志,实际上就构建了。 (4认同)

Sna*_*hot 9

我遇到了类似的问题,发现运行后sudo yum install libevent-devel我能够成功制作和安装 tmux。

编辑:如果您在 Red Hat 机器上安装它,您还需要访问 Red Hat Network 上服务器的频道选择并添加 RHEL Server Optional 频道。这将使您能够访问 libevent 的 -devel 包(基本和补充渠道不提供它)。

  • 这将是修复它的正常方法,但在这种情况下,它是“我没有 root 访问权限的机器” (3认同)

小智 7

我在 RHEL 5.4 上遇到了同样的问题,实际上发现安装了 libevent 但没有 libevent.so 符号链接,只有库的真实版本:

/usr/lib64/libevent-1.1a.so.1
/usr/lib64/libevent-1.1a.so.1.0.2
Run Code Online (Sandbox Code Playgroud)

因此,ln -s /usr/lib64/libevent-1.1a.so.1 /usr/lib64/libevent.so对我来说效果很好,无需安装或更改任何东西。不知道为什么 RedHat 的 libevent rpm 没有创建符号链接。也许是要报告的错误?

但是现在,它正在为此抱怨:error: event.h: No such file or directory.