关于解决 libwebsockets 库编译时遇到的问题的方法:

现在的问题是 libwebsockets 编译时缺少多个平台相关的私有头文件(如 private-lib-core.h、private-lib-plat-unix.h),这说明手动创建配置文件的方式无法解决所有依赖问题。更高效的方案是直接使用系统预装的 libwebsockets 库,避免手动编译的复杂依赖:

步骤 1:卸载手动编译的版本(清理环境)

bash

复制代码
# 删除之前的安装目录
rm -rf ~/lv_project/libwebsockets_install
rm -rf ~/lv_project/libwebsockets-4.2.1
rm -rf ~/lv_project/libwebsockets-4.3.2

步骤 2:安装系统自带的 libwebsockets(稳定可靠)

bash

复制代码
# 安装库文件和开发包(包含头文件)
sudo apt update
sudo apt install -y libwebsockets-dev
验证安装:

bash

复制代码
# 检查头文件是否存在
ls /usr/include/libwebsockets.h

# 检查库文件是否存在
ls /usr/lib/x86_64-linux-gnu/libwebsockets.so

若能看到文件,说明系统库安装成功。

步骤 3:修改项目 Makefile,使用系统库

打开项目 Makefile:

bash

复制代码
cd ~/lv_project
nano Makefile

删除之前与 libwebsockets 相关的路径配置,替换为:

makefile

复制代码
# 使用系统安装的 libwebsockets
CFLAGS += $(shell pkg-config --cflags libwebsockets)
LDFLAGS += $(shell pkg-config --libs libwebsockets)
说明:

pkg-config 会自动查找系统中安装的 libwebsockets 头文件和库文件路径,无需手动指定,避免路径错误。

步骤 4:重新编译项目

bash

复制代码
# 清理旧编译产物
make clean

# 重新编译
make

核心优势

系统预装的 libwebsockets 已经过编译验证,包含所有必需的私有头文件(private-lib-core.h 等)和依赖,能直接解决当前的头文件缺失问题。

如果编译仍提示与 libwebsockets 相关的错误,执行 pkg-config --cflags --libs libwebsockets 查看系统库的路径,确保 Makefile 中的 CFLAGS 和 LDFLAGS 正确引用了这些路径。

相关推荐
xbzb33 分钟前
OpenStack 网络管理(理论):Linux 网络虚拟化是 Neutron 的地基
linux·服务器·网络·openstack·network·neutron
起个网名真难~2 小时前
STM32F103_Bootloader_从零到UART升级成功_博客原稿
stm32·单片机·嵌入式硬件
Android系统攻城狮2 小时前
Linux FFmpeg深度解析之avcodec_flush_buffers调用流程与实战(十九)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频进阶
二本咕咕-机械转码2 小时前
FreeRTOS深入解析(一)_链表与并发保护——哨兵循环链表、排序键游标、临界区与关调度
单片机·算法·链表
Y3815326623 小时前
用 httpx 写 SerpBase 异步客户端:连接池与超时配置
运维·服务器·数据库
倔强的石头1063 小时前
【Linux指南】进程通信系列(七):System V 信号量 —— 同步互斥的内核原语
linux·运维·服务器
Zwawa4 小时前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
c语言·单片机·嵌入式
小李不想当小白4 小时前
BKP备份寄存器与RTC实时时钟(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
Zw-awa5 小时前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
stm32
La Pulga6 小时前
【FreeRTOS源码学习笔记】链表的实现
数据结构·笔记·stm32·mcu·链表·嵌入式·freertos