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

相关推荐
qz_Serene1 小时前
C++:类和对象(上)
开发语言·c++
西安景驰电子2 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php
ctlover2 小时前
Python文件操作
开发语言·python
luj_17682 小时前
塔防牌:策略与卡牌的智慧碰撞
服务器·c语言·开发语言·经验分享·算法
wuyk5552 小时前
3.链表:用指针串联的动态数据结构
c语言·开发语言·数据结构·链表
weixin_383196473 小时前
java基础面试题@Autowired和@Resource区别
java·开发语言
言乐63 小时前
Python游戏水平测试辅助系统2
开发语言·windows·python·游戏·django
我不是疯子是傻子4 小时前
Qt 实时曲线卡顿优化:从QPainter到OpenGL的3级加速实战
开发语言·qt
zlinear数据采集卡4 小时前
D223 ADC数据处理流水线:从原始采样值到工程单位的完整转换链
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#