尝试使用cygwin在win10环境下搭建一个php-fpm + swoole的运行环境。前面还算顺利吧,直到编译php_redis扩展这边的时候,卡住了,怎么都过不了。
/bin/sh /usr/local/redis/libtool --mode=link cc -DPHP_ATOM_INC -I/usr/local/redis/include -I/usr/local/redis/main -I/usr/local/redis -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/php/ext -DHAVE_CONFIG_H -g -O2 -o redis.la -export-dynamic -avoid-version -module -no-undefined -rpath /usr/local/redis/modules redis.lo redis_commands.lo library.lo redis_session.lo redis_array.lo redis_array_impl.lo redis_cluster.lo cluster_library.lo -lphp7
libtool: link: rm -fr .libs/redis.dll.a
libtool: link: cc -shared .libs/redis.o .libs/redis_commands.o .libs/library.o .libs/redis_session.o .libs/redis_array.o .libs/redis_array_impl.o .libs/redis_cluster.o .libs/cluster_library.o -lphp7 -g -O2 -o .libs/redis.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/redis.dll.a
/usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: .libs/library.o: in function `php_json_decode':
/usr/include/php/ext/json/php_json.h:105: undefined reference to `php_json_decode_ex'
/usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: .libs/library.o: in function `redis_serialize':
/usr/local/redis/library.c:2408: undefined reference to `php_json_encode'
/usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: .libs/library.o: in function `php_json_decode':
/usr/include/php/ext/json/php_json.h:105: undefined reference to `php_json_decode_ex'
collect2: error: ld returned 1 exit status
make: *** [Makefile:211: redis.la] Error 1
网上各种找,也没有解决。找到一个遇到跟我一样问题的,问题是人家说怎么弄啊弄啊,终于解决了,可是没有分享出来怎么解决的。无奈试着QIU助GPT,问了就是说各种库没有安装,仔细检查了下,libjson-c明明有安装了啊,php-json也有,最终还是没有解决。没办法了,在这里提问下,希望能解决,能帮助到后面和我遇到一样问题的人。