Cygwin“找不到-lreadline”

时间:2019-02-10 21:13:20

标签: c cygwin readline

我在用C ++创建Makefile时遇到问题。我需要将readline库与我的代码链接,但我一直收到此错误。

  

/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lreadline collect2: error: ld returned 1 exit status make: *** [Makefile:5: tokenizer] Error 1

我目前在cygwin64 / usr / include文件夹中有我的readline文件夹,该文件夹是从GNU Readline库站点下载的。

在我的tokenizer.cpp代码中,我也有#include <readline/readline.h>,但是我以前一直遇到错误,方法是将我的readline文件夹放在现在的目录中,此错误已得到解决,因此我认为这是正确的放置它直到出现此错误。

在我的cygwin / usr目录中,我没有lib目录,因此我不确定将readline文件夹移动或复制到另一个目录是否可以解决此问题。除此之外,我不太确定除了我的Makefile本身之外还有什么问题

CC=gcc

tokenizer : tokenizer.cpp
    $(CC) -o $@ -g $< -lreadline.c

任何帮助或建议将不胜感激!

2 个答案:

答案 0 :(得分:1)

使用cygcheck查找包含正确导入库的软件包(对于共享库,以dll.a结尾)

$ cygcheck -p usr/lib/libreadline.dll.a
Found 3 matches for usr/lib/libreadline.dll.a
...
libreadline-devel-7.0.3-3 - libreadline-devel: GNU readline and history libraries (development)

使用安装程序安装libreadline-devel

enter image description here

答案 1 :(得分:0)

要使您的Cygwin生活更轻松,请使用apt-cyg下载所需的libreadline依赖项:

apt-cyg install libreadline7 libreadline-devel mingw64-i686-readline mingw64-x86_64-readline