linux编译openresty异常问题,lua_cjson.c:706:5: 错误: ‘for‘ 循环初始化声明只在 C99 或 C++ 模式下允许

解决方法:

1. 先清理掉之前失败的编译残留

cd /home/soft/openresty-1.31.1.1/

gmake clean

2. 下载一个稳定好用的 OpenSSL 1.1.1w 源码包(推荐这个版本,兼容性极好)

wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz

3. 解压 OpenSSL 源码

tar -xzf openssl-1.1.1w.tar.gz

4. 再次配置 OpenResty!

重点:添加了 --with-openssl=... 参数,并加上 -std=gnu99 和 -fPIC 解决之前所有问题

./configure --prefix=/usr/local/openresty \

--with-cc-opt="-std=gnu99 -fPIC" \

--with-openssl=/home/soft/openresty-1.31.1.1/openssl-1.1.1w

5. 开始多线程编译

gmake

如果还有异常,需要操作如下:

1. 进入 lua-cjson 的源码目录

cd /home/soft/openresty-1.31.1.1/build/lua-cjson-2.1.0.17

2. 使用 sed 命令直接修改 C 源代码 (把 C99 的循环声明改成 C90 的写法)

sed -i 's/for (int i = 0; i < depth; i++)/int i; for (i = 0; i < depth; i++)/g' lua_cjson.c

再操作: gmake 完成,gmake install

相关推荐
2601_962071576 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
淡海水8 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
CS_Zero8 小时前
C语言sizeof是函数吗?
c语言·开发语言
-今昭-9 小时前
《V2V 迁移实战:将 VMware 虚拟机转为 OpenStack 可用 Glance qcow2 镜像》
开发语言·python
黑马程序员毕设11 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
_Twink1e12 小时前
openJiuwen 实训营 Day 1 · WorkSwarm 入门教程
开发语言·c++·openjiuwen
问天_观心12 小时前
大模型微调学习(一)
开发语言·人工智能·学习·语言模型·github
阿里嘎多学长12 小时前
2026-09-03 GitHub 热点项目精选
开发语言·程序员·github·代码托管
源代码•宸13 小时前
前置准备:定时微服务背景和现状
开发语言·经验分享·后端·微服务·云原生·架构·golang
2601_9673387113 小时前
C#上位机开发零基础入门到精通全套视频
开发语言·c#