Skip to content

Troubleshooting

508364 edited this page Jun 8, 2026 · 3 revisions

问题排查|Troubleshooting

常见问题

1. 编译错误

问题: 找不到编译器

解决方案:

  • Windows: 在 Visual Studio Developer Command Prompt 中运行
  • Linux: 安装 build-essential 和 cmake
sudo apt install build-essential cmake

2. 端口被占用

问题: bind: Address already in use

解决方案:

  • 更换端口号
  • 关闭占用该端口的进程
# Linux/Mac
lsof -i :8080
kill -9 <PID>

# Windows
netstat -ano | findstr :8080
taskkill /F /PID <PID>

3. 变量未替换

问题: 页面显示 {{<var>xxx</var>}} 而不是实际值

解决方案:

  • 确保使用 nl_web_add_html_with_vars 或 nl_web_add_vue_with_vars
  • 检查变量名是否匹配
  • 确保变量数组和值数组长度一致

4. 编码问题

问题: 中文显示乱码

解决方案:

// 设置响应编码为UTF-8
nl_web_set_encoding(server, "UTF-8");

5. 交叉编译失败

问题: 找不到交叉编译工具链

解决方案:

# 安装交叉编译工具链
sudo apt install gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf gcc-riscv64-linux-gnu

6. 内存泄漏

问题: 长时间运行内存增长

解决方案:

  • 使用 nl_web_destroy 释放服务器资源
  • 使用 nl_json_destroy 释放JSON对象

7. 日志不显示

问题: 调试日志看不到输出

解决方案:

// 设置日志级别为DEBUG
nl_log_set_level(NL_LOG_DEBUG);

// 或启用调试模式
nl_debug_enable(1);

调试技巧

启用调试模式

#include "netleaf.h"

int main() {
    // 启用调试模式
    nl_debug_enable(1);
    
    // 创建服务器
    nl_web_server_t* server = nl_web_create(8080);
    
    // 启动服务器
    nl_web_start(server);
    
    while (1) sleep(1);
    return 0;
}

自定义日志回调

void my_log_callback(nl_log_level_t level, const char* msg, void* user_data) {
    const char* levels[] = {"DEBUG", "INFO", "WARN", "ERROR"};
    printf("[%s] %s\n", levels[level], msg);
}

int main() {
    nl_log_set_callback(my_log_callback, NULL);
    // ...
}

支持

如果您遇到问题,请检查:

  1. 是否安装了必要的依赖
  2. 是否使用正确的构建命令
  3. 是否有足够的权限

报告问题

请提供以下信息:

  • 操作系统版本
  • 编译命令
  • 错误日志
  • 代码示例

导航 | Navigation

快速链接 | Quick Links

开发参考 | Development

附加模块 | Modules

  • Auto-complete - 自动补全charset和Vue引入
  • Auto-route - 自动路由建议
  • ErrorPage - 自定义错误页面模板
  • IPC - 进程间通讯服务
  • LinkAgg - 同端口链路聚合
  • Lang - 多语言错误消息
  • Vue - Vue.js后端支持
  • Extension - 扩展库开发指南
  • TLS - TLS/SSL 加密扩展
  • MQTT - MQTT v5.0 协议客户端
  • MQTT-Server - MQTT v5.0 协议服务端(Broker)

关于 | About

作者: 508364

版本: 2.4.2

许可: MIT License


外部链接 | External Links

Clone this wiki locally