一般来说,这是一个关于运行时链接的问题。
我正在尝试在linux系统上从源代码安装tmux。它依赖于" libevent"我在家里安装了。我不是这个系统的根,所以我无法在系统范围内安装它。
DIR = $ HOME / libevent的 ./configure --prefix = $ HOME / site / tmux / CFLAGS =" -I $ DIR / include" LDFLAGS =" -L $ DIR / LIB /"
虽然上面的命令有效,但我需要在LD_LIBRARY_PATH中包含$ HOME / libevent,以便tmux能够正常工作。我认为应该有更好的方法。
我需要一个运行时链接,以便我不必弄乱LD_LIBRARY_PATH。我在这里阅读http://www.ilkda.com/compile/Environment_Variables.htm,这可以通过" -R"来实现。选项。
./ configure --prefix = $ HOME / site / tmux / CFLAGS =" -I $ DIR / include" LDFLAGS =" -L $ DIR / LIB /" LDFLAGS =" -R $ DIR / LIB /"
但这不起作用并产生以下错误: configure:错误:"找不到libevent"
有人可以让我知道在运行configure脚本时如何在make中运行链接。
答案 0 :(得分:1)
LDFLAGS =“ - L $ DIR / lib /”LDFLAGS =“ - R $ DIR / lib /”
将LDFLAGS
设置为-L$DIR/lib/
,然后立即使用-R$DIR/lib/
覆盖它,与x = 1; x = 2;
不同,会导致x == 2
你想要的是:LDFLAGS="-L$DIR/lib/ -R$DIR/lib/"
“找不到解放”
我信任您阅读手册页,但您没有。 -R
标志对Solaris上的链接器意味着RUNPATH
,但它意味着 else 到Linux链接器。
你想要的是:
LDFLAGS="-L$DIR/lib/ -Wl,--rpath=$DIR/lib/"