“Cygwin”;找不到-lreadline“; 我在C++中创建一个MaMo文件遇到了问题。我需要将readline库与我的代码链接起来,但我一直收到这个错误

“Cygwin”;找不到-lreadline“; 我在C++中创建一个MaMo文件遇到了问题。我需要将readline库与我的代码链接起来,但我一直收到这个错误,c,cygwin,readline,C,Cygwin,Readline,/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../../../../x86_64-pc-cygwin/bin/ld: 找不到-lreadline collect2:错误:ld返回1退出状态 make:**[Makefile:5:tokenizer]错误1 我目前在cygwin64/usr/include文件夹中有我的readline文件夹,它是我从GNU readline库站点下载的 在我的tokenizer.cpp代码中,我也有#include,但

/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../../../../x86_64-pc-cygwin/bin/ld:
找不到-lreadline collect2:错误:ld返回1退出状态
make:**[Makefile:5:tokenizer]错误1

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

在我的tokenizer.cpp代码中,我也有
#include
,但我之前一直收到一个错误,该错误通过将我的readline文件夹放在它现在所在的目录中得到修复,因此我认为在出现此错误之前,这是放置它的正确位置

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

CC=gcc

tokenizer : tokenizer.cpp
    $(CC) -o $@ -g $< -lreadline.c
CC=gcc
标记器:tokenizer.cpp
$(CC)-o$@-g$<-lreadline.c

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

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

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

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

使用安装程序安装
libreadline-devel


-l用于指定构建可执行文件的链接步骤所需的库的快捷方式名称(例如,-lcurl标识libcurl.a库)。您指定了-lreadline.c,这意味着libreadline.c.a的库。。。可能不是你的意思。此外,readline.c“可能”是“readline”函数的c源代码。最后,我相信您正在调用C编译器(即GCC),而不是C++编译器(即G++)…头文件:<代码> RealLoad。h <代码>应该进入目录:<代码> /Ur/Eng/<代码>库文件:<代码> ListLay.一个< /Calp>(或ListLaySso)可以放置在与您的源相同的目录中。(或在
/usr/lib
directory@user3629249这很奇怪,我似乎没有libreadline。我下载的软件包中有一个文件。我目前在case.edu网站上有readline 8.0版。还有其他地方(可靠的)吗我能得到它吗?你能在出错前显示编译器命令吗?请同时显示
cycheck-c libreadline devel的输出你对你的问题有什么答案吗?我也遇到了同样的问题。我在这里尝试了所有可用的答案,但仍然找不到-lReadLine,因为编译只针对cygwin
libreadline-devel
是必需的。您正在提取不需要的交叉编译器库。是的,但OP没有说他已经添加了什么,所以我只是采取了预谨慎(非破坏性)的方法。:)我能够成功安装该包,但我仍然存在无法找到libreadline的问题:(我尝试了.dll.a和.a文件,但两个文件都给了我相同的错误。您仍然需要包含
-lreadline7
,以使链接器使用
/bin/cygreadline7.dll
@DougHenderson,这是错误的。
-lreadline
将正确链接到它。)
$ 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)