You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL环境下编译代码报错:找不到wiringPi.h库求解决方案

解决WSL下编译wiringPi代码时的链接错误

问题本质

你遇到的cannot find wiringPi是链接器错误,并非头文件缺失——你之前仅配置了头文件路径,但链接阶段需要明确指定要关联的wiringPi库文件,且WSL作为Linux子系统,需遵循Linux的库安装与编译逻辑。

分步解决

1. 确认WSL中已正确安装wiringPi

WSL是Linux环境,需用Linux包管理器安装库:

  • 打开WSL终端执行:
    sudo apt update
    sudo apt install wiringpi
    
  • 验证安装结果:
    • 检查头文件:ls /usr/include | grep wiringPi,能看到wiringPi.h即表示头文件存在
    • 检查库文件:ls /usr/lib | grep wiringPi,能看到libwiringPi.so即表示库文件存在

2. 修正编译配置(或直接用终端编译)

方式一:调整VS针对WSL的项目配置

  • 头文件路径:在项目→配置属性→C/C++→常规→附加包含目录中添加/usr/include(wiringPi头文件默认安装路径)
  • 库文件配置:
    • 链接器→常规→附加库目录:添加/usr/lib(wiringPi库默认安装路径)
    • 链接器→输入→附加依赖项:添加wiringPi(注意是库名称,而非头文件名)
  • 确保项目的平台工具集选择WSL对应的Linux工具链(如GCC for Ubuntu)

方式二:直接用WSL终端编译(更简洁可靠)

跳过VS图形配置,在WSL终端直接用g++编译:

g++ your_code.cpp -o temp_reader -lwiringPi

-lwiringPi参数会告诉链接器关联wiringPi库,系统会自动识别已安装的头文件与库文件位置

3. 关键提醒:WSL的局限性

wiringPi是为树莓派物理GPIO设计的库,WSL本身无直接访问硬件GPIO的权限。即便编译成功,运行时wiringPiSetup()会返回-1,无法正常读取GPIO数据。若要操作树莓派GPIO,建议直接在树莓派的Linux系统上编译运行。

内容的提问来源于stack exchange,提问作者Robert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 03:23:27