提出问题
在64位linux上运行某程序时,发现其需要32位的库,其中一个就是fontconfig-2.7.0.tar.gz。然后在linux上编译fontconfig-2.7.0.tar.gz,操作如下:
./configure --prefix=`pwd`/../install/
make
make install
将编译出来的库放到软件中,运行出错。编译出来是64位的。
root@inspur:/usr/lib/x86_64-linux-gnu# file libfontconfig.so.1.8.0
libfontconfig.so.1.8.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=5cef2f0e7239d3d7c0ffaafe1dc72773406782a0, stripped
root@inspur:/usr/lib/x86_64-linux-gnu#
如何修改?
这里我采用方法是:将所有 Makefile使用的GCC和LD修改。具体如下:
- 将ld -m elf_x86_64修改为ld -m elf_i386
- 将gcc修gcc -m32
- 检查makefile,发现depmode=gcc3被修改成gcc -m323,这不符合我们的要求,重新