首页 > 解决方案 > 将 php 扩展从 7.2 迁移到 7.3 时编译错误

问题描述

我正在查看现有的 php 扩展,并尝试将其从 7.2 重新定位到 7.3。我需要进行哪些 7.3 api 更改来修复这些构建错误?

我已经查看了内部升级指南,但我仍然不清楚 GC_FLAGS 宏到底发生了什么变化。

https://github.com/php/php-src/blob/php-7.3.0/UPGRADING.INTERNALS

故障线路示例:

GC_FLAGS(common_strings.__construct) |= IS_STR_INTERNED;

(还有更多) https://github.com/tpunt/pht/blob/master/pht.c#L53-L98

返回错误示例:

ext\pht\pht.c(53): error C2106: '|=': left operand must be l-value

(以及更多)https://ci.appveyor.com/project/NxSys/pht/builds/26576298/job/40hva8w8akd3qguw#L231

构建环境:Win10 上的 MSVC15 (Visual Studio 2017)

任何想法\方向将不胜感激。谢谢!

标签: phpcphp-extension

解决方案


您可以尝试使用它(未经测试):

GC_ADD_FLAGS(common_strings.__construct, IS_STR_INTERNED);

当然还有 GC_DEL_FLAGS() 来删除它。


推荐阅读