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

相关推荐
炸薯条!2 小时前
博客系统测试报告
开发语言·lua
Evand J2 小时前
【MATLAB例程12】永磁同步电机基于增广无迹卡尔曼滤波的未知负载转矩在线观测
开发语言·matlab
时间的拾荒人3 小时前
CMake 实战指南:从基础语法到静态库/动态库制作与链接
开发语言·c++·面试
xyouyuweizhu3 小时前
Java InetAddress 详解:从 IP 地址表示到主机名解析
java·开发语言·python
布莱克60512 小时前
C/C++ 中变量的声明与定义:区别、联系与常见误区
c语言·开发语言·c++·声明·定义
LabVIEW开发12 小时前
LabVIEW 局部变量为何引发竞争条件?四种同步机制
开发语言·labview
benchmark_cc13 小时前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
Zenova EdgeOS14 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
取名真是14 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
FRing0315 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2