我尝试以非 root 用户身份从源代码安装 git。输入“make”后出现以下错误:
Link git-daemon
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
我已经从源代码安装了 libz,并将环境变量 LD_LIBRARY_PATH 设置为“$HOME/lib”。此目录包含 libz.a、libz.so、libz.so.1 和 libz.so.1.2.5。
我究竟做错了什么?
答案1
$LD_LIBRARY_PATH
用于动态加载器 ld-linux.so
,并且仅在执行已编译和链接的二进制文件时使用。
链接时,需要使用 指定库路径-L
,如-L$HOME/lib
。对于使用 autoconf ( ) 的项目./configure
,您可以在 中指定标志$LDFLAGS
:
export dir="$HOME"
export CFLAGS="-I$dir/include"
export LDFLAGS="-L$dir/lib"
答案2
$LIBRARY_PATH
为了成功地从源代码构建 git 并且没有链接错误,除了$CFLAGS
和之外,我还必须设置变量$LDFLAGS
:
export LIBRARY_PATH="$HOME/lib"