/usr/bin/ld文件夹:找不到-ll

6psbrbz9  于 2022-11-07  发布在  其他
关注(0)|答案(3)|浏览(262)

我正在运行make,它将以下标志传递给ld

LDLIBS=-ll -ldl -lreadline -lcurses

但是,当运行make时,链接器将失败,并显示:

/usr/bin/ld: cannot find -ll
collect2: error: ld returned 1 exit status

我真的不确定共享对象库-ll指的是什么,也不知道如何去弄清楚它。
我在一台CentOS机器上尝试了这个方法,所以我尝试安装了'Development Tools'包,我想它一定是非常通用的:

sudo yum groupinstall 'Development Tools'

但无济于事。
图书馆在哪里?如有任何帮助,将不胜感激!谢谢!

a6b3iqyw

a6b3iqyw1#

尝试重新安装野牛和Flex。
sudo apt-get remove bison flex sudo apt-get install bison flex
对我很有效。

z0qdvdin

z0qdvdin2#

您可以使用以下命令找到哪个包提供了哪个文件:

yum whatprovides "filename"

检查this answer以了解如何执行此操作

mv1qrgav

mv1qrgav3#

如果你发现这个问题并且正在使用ubuntu,请给予sudo apt-get install libfl-dev一次机会
我在ubuntu(github actions)上得到了这个,但是没有在本地得到。
从阅读几个答案中我发现libl.a缺少了什么,所以我在本地系统上追踪到了这个包。

/usr/lib$ dpkg -S /usr/lib/x86_64-linux-gnu/libl.a
libfl-dev:amd64: /usr/lib/x86_64-linux-gnu/libl.a

所以我用sudo apt-get install libfl-dev修正了github的动作。
在本地,它说这是我拥有的flex的依赖项。我不确定这是否只是因为我在本地的LTS版本上,并使用latest作为CI。

相关问题