报错-"/usr/bin/ld: cannot find -levent"的原因及解决办法?
Posted
技术标签:
【中文标题】报错-"/usr/bin/ld: cannot find -levent"的原因及解决办法?【英文标题】:Reason and solution for error -"/usr/bin/ld: cannot find -levent "? 【发布时间】:2009-11-12 10:23:19 【问题描述】:在编译使用 libevent 库的程序时,我正在使用 gcc 选项 -levent。但我收到了这个错误 -
/usr/bin/ld: 找不到-levent
我的系统上没有 libevent,所以我在编译时静态链接到它
gcc -o Hello -static -I libevent-1.4.12-stable/ hello.c -levent
我该如何解决这个问题?
提前致谢!
【问题讨论】:
【参考方案1】:您系统上的libevent.(a|so)
文件在哪里?
如果它不在系统的库路径中,则必须添加一个 -L
选项,将其位置添加到链接器搜索的库路径列表中。
例如
gcc -L/folder/containing/event/lib -levent mysource.cc
【讨论】:
我没有 libevent.(a|so)。我使用 gcc -o Hello -static -I libevent-1.4.12-stable/ hello.c -levent 静态包含 libevent 如果你想链接到库(静态或动态)你需要库。静态库应称为 libevent.a。如果它在 libevent-1.4.12-stable 中,那么您应该提供-Llibevent-1.4.12-stable
告诉链接器查看那里。【参考方案2】:
您需要在您的系统上拥有libevent
,或者需要明确指定其路径(如果它是您获得的带有标头的第三方库)。
我怀疑它不在您的默认 /lib 路径中。
【讨论】:
以上是关于报错-"/usr/bin/ld: cannot find -levent"的原因及解决办法?的主要内容,如果未能解决你的问题,请参考以下文章
chkrootkit 编译报错的解决/usr/bin/ld: cannot find -lc
/usr/bin/ld: cannot find -llzma /usr/bin/ld: cannot find -lbz2
安装 sysbench的 报错 /usr/bin/ld: cannot find -lmysqlclient_r 解决办法
/usr/bin/ld: /tmp/ccIHWHTn.o: in function `Cdisk::Cdisk()‘:编译报错解决方案
/usr/bin/ld: /tmp/ccIHWHTn.o: in function `Cdisk::Cdisk()‘:编译报错解决方案
ubuntu 14.04 编译opencv-3.4.2 报错: /usr/bin/ld: /usr/local/lib/libavformat.a(allformats.o): relocation