Yun Dou
Yun Dou
windows构建必须使用patch 见 https://github.com/easysoft/phpmicro/tree/master/patches 使用patch后彻底清空构建环境再试下
> patch具体命令应该怎么写 windows下 cmd里和bash一样: ```cmd REM 在php源码目录下 patch -p1 < path\to\patchfile ``` powershell里我不知道怎么做 顺便提一下 strawberry perl带的那个patch可能有点毛病,如果上面的命令有问题(coredump了),在php源码目录 ``` git apply path\to\patchfile ```
@a1312963 你需要自己构建几乎所有依赖 php官方给的大多数扩展都是动态编译的 并不能链接进去 (8.x的libcurl好像是变成静态的了)
至于curl如何构建 可以参考 https://github.com/dixyes/lwmbs/blob/master/windows/libraries/curl.php
> lwmbs可以单独构建库: https://github.com/dixyes/lwmbs/blob/master/build_libs.php micro和lwmbs都不支持7.4了 你要自己移植micro到7.4 这只是给你个构建libcurl的命令的参考
> 能提供一下windows php8.1版本的patch文件吗 用版本号小于它的最新的patch 例如 现在有73 80 82三个版本 则 73 74 用73, 80 81 用 80, 82 83用82
>  micro 是否支持opcache呢 micro编译后无生成opcache的dll 通过ini开启也无法使用这个模块 https://github.com/easysoft/phpmicro/blob/master/patches/static_opcache_83.patch
>   打了patch之后可以使用opcache等函数了 但打印phpinfo里面的信息 似乎是不支持的 本来它就只支持这些短生命周期sapi啊 cli是不支持的 而且cli下支持了也并不会有什么用 唯一有用的是jit 或许能提高那么一丢丢性能
才看到。。。 micro几乎没有动zend内存池的东西,目测是php本身的bug,或者micro的生命周期有些问题 我也没找到最小可复现demo 至于-Os的segv多半是编译器bug,如果能制作最小demo(c代码),可以向gcc/clang反馈问题 对于micro的调试 可以把[debug](https://github.com/easysoft/phpmicro/blob/3eb5893b842675b36069e51f34b153188297a85b/php_micro.c#L335)打开,[strip](https://github.com/easysoft/phpmicro/blob/3eb5893b842675b36069e51f34b153188297a85b/config.m4#L114)关掉,打开asan(我一般直接改makefile),然后有符号的情况下进行调试,Linux上比较方便,mac/windows比较痛苦(mac缺少调试工具,还有些莫名其妙的完整性检查策略,windows下debug构建比较麻烦)
内存泄漏应该不会core啊(sfxname是全生命周期的 也算不上泄露) 我猜事php改什么东西了,等我收拾完这波重构看一眼咋回事