树莓派编译LCD程序报错:/usr/bin/ld无法找到-llcd
解决树莓派编译LCD程序时
cannot find -llcd错误 问题分析
链接器报错/usr/bin/ld: cannot find -llcd,说明编译时指定的-llcd库文件(liblcd.so或liblcd.a)不存在,或者链接器无法检索到它。结合你的代码及已尝试的操作,核心问题是编译命令的库依赖指定错误,或目标库的安装路径未被链接器识别。
解决方案
1. 修正编译命令的库依赖
你的代码使用的是wiringPi框架下的I2C和LCD相关函数,这些功能属于wiringPi核心库,不需要单独链接lcd库。同时代码用到了C++线程,需要额外链接线程库。执行以下命令编译:
g++ your_code.cpp -o lcd_test -lwiringPi -lpthread
2. 验证目标库是否存在(若确实需要liblcd)
如果你的LCD驱动依赖独立的liblcd库,先检查系统中是否存在该库文件:
find /usr -name "liblcd*"
- 若输出为空:说明该库未正确安装,需重新安装对应驱动库(注意区分
lcdproc与wiringPi配套LCD库,二者并非同一组件) - 若找到库文件(如
/usr/local/lib/liblcd.so):编译时需通过-L指定库路径,例如:g++ your_code.cpp -o lcd_test -L/usr/local/lib -llcd -lwiringPi -lpthread
3. 避免头文件冲突
检查#include <lcd.h>的归属:
find /usr -name "lcd.h"
如果是wiringPi的头文件,路径通常为/usr/local/include/wiringPi/lcd.h,建议代码中改为#include <wiringPi/lcd.h>,避免和lcdproc的同名头文件冲突。
4. 重新编译安装wiringPi(若库损坏)
若wiringPi库存在损坏,重新编译安装最新版本:
git clone https://github.com/WiringPi/WiringPi.git cd WiringPi ./build
内容的提问来源于stack exchange,提问作者Purpl3_Br1ck
相关产品推荐
相关产品推荐

