cannot find -l*** 报错

  • Post author:
  • Post category:其他


在Linux中编译.c或.cpp文件时,当编译找不到链接库的时候,可能会有如下报错:

****:cannot find -ldrm

collect2: error: ld returned 1 exit status

如上错误是我的Makefile中找不到libdrm.so库,出现这类错误要自己手动补齐lib,若错误是cannot find -l***,即找不到lib***.so库文件。

解决办法:

1.如果是用Makefile进行编译的话,需要自己确定Makefile中的库文件的指定位置或配置;比如下面是我自己的Makefile中的配置PRG_LIB_DIR    := $(PROJECT_DIR)/lib,即没有在lib文件夹中找到相对应的库文件,就会报错;

2.看usr/lib目录下有没有这些库文件,如果有的话看链接有没有出错,如果链接出错的话,修复链接即可,修复步骤如下:

ln -s lib***.so.6(根据你具体的情况来看数字是多少) lib***.so

3.如果usr/lib目录下没有这些库文件的话,需要找到这些库文件,然后赋值到usr/lib文件夹中:

sudo cp ***.so  /usr/lib

希望以上方法能帮到你,谢谢!



版权声明:本文为it_rensheng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。