已解决:使用 GD 编译 PHP:在创建共享对象时不能使用针对符号 'WebPMemoryWrite' 的重定位R_X86_64_PC32;



我目前正在从RedHat7服务器上的源代码安装带有GD库的PHP,我遇到了一些问题。

我用这个命令配置 PHP:

./configure --with-apxs2=/server/lib/httpd/bin/apxs --with-pdo-mysql --with-config-file-path=/server/php-7.3.9/conf --with-libxml-dir=/server/lib/libxml2 --with-curl=/server/lib/curl --with-gd --enable-mbstring --with-jpeg-dir=/server/lib/libjpeg --with-png-dir=/server/lib/libpng –with-webp-dir=/server/lib/webp

它可以工作,但是当我执行make命令时,我遇到此错误:

/bin/ld: /server/lib/webp/lib/libwebp.a(picture_enc.o): relocation R_X86_64_PC32 against symbol `WebPMemoryWrite' can not be used when making a shared object; recompile with -fPIC
/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
make: *** [libphp7.la] Error 1

我也尝试在没有webp的情况下编译和安装它(PHP文档中不需要:php文档(,但是我有这个错误:

ext/gd/libgd/.libs/gd_webp.o: In function `gdImageCreateFromWebpCtx':
/server/php-7.3.9/ext/gd/libgd/gd_webp.c:68: undefined reference to `WebPGetInfo'
/sever/php-7.3.9/ext/gd/libgd/gd_webp.c:79: undefined reference to `WebPDecodeARGB'
ext/gd/libgd/.libs/gd_webp.o: In function `gdImageWebpCtx':
/server/php-7.3.9/ext/gd/libgd/gd_webp.c:153: undefined reference to `WebPEncodeRGBA'
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

所以这似乎是必需的。 你能帮我解决这个问题吗 谢谢

我通过替换我的 webp 包安装解决了我的问题。 起初,我使用预编译的linux软件包,并将其替换为本机源代码和编译,make&make install解决了问题。

谢谢大家

最新更新