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

安装skywalking-php-sdk执行make时遇C99模式编译报错求助

解决skywalking-php-sdk编译时的C99模式错误

这个错误的核心原因是:代码在for循环的初始化语句里直接声明了变量,但默认编译标准不是C99——C99之前的C语言标准不允许这种写法。

有两种可行的解决办法:

方法一:修改编译选项,启用C99模式

  • 直接在执行make命令时追加编译参数:
    make CFLAGS="-std=c99"
    
  • 或者找到项目的Makefile,在CFLAGS配置项中添加-std=c99(如果需要保留GNU扩展特性,也可以用-std=gnu99),修改后再执行make。

方法二:修改报错代码

  • 打开报错文件/root/skywalking-5.0.1/src/sky_core_log.c,定位到第66行的for循环
  • 将循环内声明的变量移到循环外部,比如把:
    for (int i = 0; i < some_len; i++) {
        // 循环逻辑
    }
    
    修改为:
    int i;
    for (i = 0; i < some_len; i++) {
        // 循环逻辑
    }
    
  • 保存文件后重新执行make即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:33:25