【问题标题】:libraries not found in c++ code using a 3rd party header file使用 3rd 方头文件在 c++ 代码中找不到库
【发布时间】:2022-01-12 05:46:32
【问题描述】:

当我尝试使用 olcPixelGameEngine 作为头文件编译一些 c++ 代码时出现错误,错误是 -

/usr/bin/ld: cannot find -lGL
/usr/bin/ld: cannot find -lpng

【问题讨论】:

标签: c++ linux visual-studio-code g++ olcpixelgameengine


【解决方案1】:

根据正在编译的代码,错误消息可能如下所示:

/usr/bin/ld: 找不到-lc

/usr/bin/ld: 找不到-lltdl

/usr/bin/ld: 找不到-lXlst

xxx 代表库的名称,例如libc.so、libltdl.solibXtst.so。命名规则为:lib+库名(即xxx)+.so。

发生此类错误的可能原因有 3 个:

  1. 系统未安装该库;
  2. 已安装库的版本不正确;
  3. 库(.so 文件)的符号链接不正确。该链接未链接到正确的 .so 文件。

解决方案:

  1. 检查符号链接是否正确链接到/usr/lib 中的.so 文件,并更正任何不正确的链接。

例如,

如果错误消息“/usr/bin/ld: cannot find -lXlst”是由不正确的符号链接引起的,请发出以下命令进行更正。

cd /usr/lib

ln -s libXtst.so.6 libXtst.so

  1. 如果问题不是由不正确的符号链接引起的,那么很可能是由于缺少 lib。在这种情况下,需要安装缺少的库。

例如,

如果错误信息“/usr/bin/ld: cannot find -lXlst”是由于“/usr/lib”下缺少“libXtst.so”导致的,请发出以下命令进行安装。

apt-get install libxtst-dev

关于如何安装缺少的库的附加说明。

  1. 找出丢失的磅

          Error Message                             Missing lib
    

/usr/bin/ld: 找不到 -lc ------------------------------------ ---------------->libc

/usr/bin/ld: 找不到 -lltdl ------------------------------------ ---------------->libltdl

/usr/bin/ld: 找不到 -lXlst ------------------------------------ ----------------> libXtst

  1. 搜索丢失的库

    apt-cache search libc-dev

    apt-cache search libltdl-dev

    apt-cache search libXtst-dev

  2. 安装缺少的库。

请参考以下链接。这可能会有所帮助。

http://wei48221.blogspot.com/2017/08/linux-how-to-solve-problem-of-usrbinld.html

【讨论】:

  • 谢谢你,但是,我的错误信息说你可能会注意到其他一些东西 - /usr/bin/ld: 找不到 -lGL /usr/bin/ld: 找不到 -lpng
猜你喜欢
  • 1970-01-01
  • 2018-10-03
  • 1970-01-01
  • 2021-02-17
  • 2023-04-10
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多