在64位debian上编译PHP扩展到32位PHP安装

时间:2012-04-08 21:16:09

标签: php php-extension

我正在尝试在64位系统上编译用于32位PHP安装的PHP扩展。但是,重启apache时会收到以下警告:

Warning: PHP Startup: Unable to load dynamic library '/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/spotify.so' - /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/spotify.so: wrong ELF class: ELFCLASS64 in Unknown on line 0

我使用此命令编译所有内容:

/opt/lampp/bin/phpize; CFLAGS=-m32 CPPFLAGS=-m32 CCASFLAGS=-m32 ./configure --enable-spotify --with-php-config=/opt/lampp/bin/php-config; make && make install

标志应该确保它编译为32位。我已安装gcc-multilibg++-multilib

完成编译后(此日志:http://pastebin.com/MqgGgyzv)我执行以下命令:

file /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/spotify.so

然后返回

/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/spotify.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

所以显然没有正确编译它,但我看不出我做错了什么。

1 个答案:

答案 0 :(得分:2)

您正在编译确定,但链接器无意中创建了64位.so。

解决方案是在你的LDFLAGS中加入“-m32”:

https://askubuntu.com/questions/85978/building-a-32-bit-app-in-64-bit-ubuntu