如何在64位机器下将libxml2和libcurl编译为32位?

如何在64位机器下将libxml2和libcurl编译为32位?,c,linux,installation,libcurl,libxml2,C,Linux,Installation,Libcurl,Libxml2,我从THWWeb下载了libxml2-2.9.1.tar.gz和curl-7.31.0.tar.gz包。如果我在32位机器下编译这两个,就可以了。但正式的环境是64位机器,在我编译了第二个测试之后,libxml2和libcurl变成了64位。当我运行应用程序时,它报告了一个错误。 现在,如何在64位机器下将这两个包编译成32位?我在64位机器上发现,在/usr/local/lib中有一个旧包libxml2.so.2.6.26,它是64位文件;但是在/usr/lib中,还有一个文件libxml2.

我从THWWeb下载了libxml2-2.9.1.tar.gz和curl-7.31.0.tar.gz包。如果我在32位机器下编译这两个,就可以了。但正式的环境是64位机器,在我编译了第二个测试之后,libxml2和libcurl变成了64位。当我运行应用程序时,它报告了一个错误。 现在,如何在64位机器下将这两个包编译成32位?我在64位机器上发现,在/usr/local/lib中有一个旧包libxml2.so.2.6.26,它是64位文件;但是在/usr/lib中,还有一个文件libxml2.so.2.6.16,它是32位的。这真让我很困惑


我只是希望应用程序可以正常运行,有人帮忙。非常感谢。

您需要设置一个环境变量,以便configure可以看到它。正确的命令如H2CO3所述:

CFLAGS='-m32' ./configure
不是这样的


这些命令不同,后者在shell中设置变量没有命令会看到
CFLAGS
的值,而前者在一个环境中设置
CFLAGS
,该环境将被传递给
execve
以运行
/configure
命令。

CFLAGS='-m32'/configure&&make&&sudomake install
只需在shell中输入CFLAGS='-m32'?然后运行./configure etc.@lalala命令的第一部分是
CFLAGS='-m32'/configure
。字面上这样地。我输入命令CFLAGS='-m32',然后./configure;但是结果是64位的.libxml2.so.2.9.1是4236595字节。如果它是32位的,它只是半个。你能说得更清楚一点吗?拉拉学着用贝壳。他说得很清楚,命令是
CFLAGS='-m32'/configure
。知道了?没有新线!谢谢你帮我指出错误。我在bashshell中输入这些命令:CFLAGS='-m32'/configuremake;然后,它告诉我一个错误:error“LONG_位定义对于平台来说似乎是错误的(错误的gcc/glibc配置?)。你能告诉我原因吗?谢谢。我会先删除旧的源代码目录,然后重做。或者你的系统没有32位开发库。在ubuntu上,以下内容应该足够了
sudo apt get install gcc multilib
CFLAGS='-m32'
./configure