我正在尝试从源代码构建 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 的东西。其他发行版可能有所不同。