如何为x264体系结构编译i386库?通常,为了强制使用架构,我将使用以下命令:
./configure CC="gcc -arch i386" CXX="g++ -arch i386"但这似乎不适用于x264。
为了编译x264,我对它进行了配置和制作,这将生成一个x86_64库。当我试图使用上面的命令强制使用i386体系结构时,我会收到以下消息:
未知选项CC=gcc -arch i386,忽略未知选项CXX=g++ -arch i386,忽略
然后,配置脚本打印它为X86_64平台配置的脚本。我希望看到它为i386平台配置,并生成一个i386二进制文件。
发布于 2011-08-25 15:06:47
Autotooled configure脚本具有特殊的命令行参数--build和--host,它们用于配置交叉编译。一些旧的配置脚本试图通过检查编译器的输出来确定它们是交叉编译的,但是显式地告诉配置脚本更明智和更健壮。
例如,请参见这里。或这个问题.
(哦,您所看到的“未知选项”错误的直接原因是环境变量重写在sh命令行上的脚本名称之前,而不是在它之后。它不是make__,可以在make命令行本身给出变量定义。)
发布于 2012-11-28 20:37:16
在阅读了配置脚本和config.sub文件之后,我发现以下内容可以用于构建libx264的i386版本:
./configure --host=i386-apple-darwin我还遇到了“没有工作的C编译器发现”的错误。我将LDFLAGS环境变量设置为错误。因此,在继续之前,请确保LDFLAGS和CFLAGS是空的(或良好的)。
export CFLAGS=""
export LDFLAGS=""发布于 2011-08-25 15:24:14
如果你有一个x86-64 gcc,你可以提供"-m32“来要求它编译一个32位二进制。因此,您应该能够使用这样的配置:
./configure CFLAGS="-m32"但是,如果这不起作用,那么它可能是自动工具中的一个bug,并且CFLAGS正在被覆盖。你可以尝试另一种选择:
make CFLAGS="-m32"后者的问题是,您必须记住这样做,否则,您最终会遇到一些为不同架构构建的对象文件的链接问题。
https://stackoverflow.com/questions/7192611
复制相似问题