构建 GDB,找不到 libreadline.a

构建 GDB,找不到 libreadline.a

我正在尝试从源代码构建 GDB,并且遇到一个奇怪的问题。我不确定哪些信息是相关的,所以如果我没有提供足够的信息,请告诉我。

我正在研究 Linux Mint。我有一个包含各种 gdb 源文件和构建脚本的 tarball,它们是在类中提供的。

当执行构建脚本之一(linux-targ)时(如果有价值的话我可以发布它),我遇到以下错误。

.../gdb/install.sh -c -m 644 libreadline.a /usr/local/lib/libreadline.a  
install:  libreadline.a does not exist  
make[1]:  [install] Error 1  

这是 install.sh 脚本中失败的行。

    if [ -f $src -o -d $src ]  
    then  
            true  
    else  
            echo "install:  $src does not exist"  
            exit 1  
    fi  

我尝试将 libreadline.a 复制到本地目录,但也失败了。

然而,/usr/local/lib/libreadline.a确实存在。我什至已经将其删除并重新安装。如果我以 root 身份运行它似乎也并不重要。

为什么安装脚本报告libreadlines.a不存在?

如果这是错误的 SE,请提出替代方案。

答案1

看来你还没有安装库读取行库。我不知道你在哪个 Linux 发行版上使用。对于 ubuntu 安装库:

sudo apt-get install libreadline7

否则,您的库的路径设置不正确。

答案2

如果链接器抱怨找不到“.a”文件,则意味着它静态链接到库。安装“readline-devel”包是不够的。您还需要安装“readline-static”包。

使用 Centos 7,这些是我需要安装的包名称来构建静态链接到 readline 的东西。其他发行版可能有所不同。

相关内容