2013-08-23 129 views
0

我从网上下载了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位的。它真的让我很困惑。如何在64位机器上将libxml2和libcurl编译为32位?

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

+0

'CFLAGS =' - m32'./configure && make && sudo make install' – 2013-08-23 05:41:53

+0

只需在shell中输入CFLAGS =' - m32'?然后运行./configure等。 – lalala23456

+0

@lalalalalalalala命令的第一部分是'CFLAGS =' - m32'./configure'。从字面上看。喜欢这个。没有其他的。 – 2013-08-23 05:48:44

回答

1

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

CFLAGS='-m32' ./configure 

不喜欢这种

CFLAGS='-m32' 
./configure 

这些都不是相同的命令,后者设置一个可变在壳里; 没有命令将会看到CFLAGS的值,而前者在将传递到execve以运行./configure命令的环境中设置CFLAGS

+0

感谢您为我指出错误,我将这些命令输入到bash shell中:CFLAGS =' - m32'./configure make;然后,它告诉我一个错误:错误“LONG_BIT定义对于平台出现错误(坏gcc/glibc配置?)。你能告诉我原因吗?谢谢。 – lalala23456

+0

我会先删除旧的源目录,然后重做。或者你的系统没有32位开发库。 –

+0

在Ubuntu上,以下应该足够了'sudo apt-get install gcc-multilib' –

相关问题