linux下解决64位下apache编译模块时/usr/lib/libexpat.so问题

作者:smallfish
给apache编译libapreq2模块时候报错:/usr/lib/libexpat.so: could not read symbols: File in wrong format

尝试了几种方式都不行,大概步骤都是如下:
perl -MCPAN -e shell
>>> install Apache2::Request

... 一直到make,然后报错

用perl Makefile.PL --with-apache2-apxs=/path/apxs,make时候也报错。

很是郁闷,然后修改Makefile.PL、configure、force install等等,都是未果。

问题都是64位下的libexpat.so有点问题。换个64位编译软件碰到了不少麻烦唉。

最后解决办法是:
>>> install Apache2::Request
... #到报错时停止
>>> look Apache2::Request
#会跳到一个libapreq2-2.08-FPquPs类似的目录,可以看到目录下有Makefile.PL,configure等文件或目录。
删除configure文件
删除apreq2-config文件
重新运行:./buildconf,可以看到一大堆检测啥的程序在跑,跑完就OK了。
perl Makefile.PL --with-apache2-apxs=/path/apxs
make && make install

现在可以看到在apache的modules下有mod_apreq2.so了。搞定!