首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为x264编译i386

为x264编译i386
EN

Stack Overflow用户
提问于 2011-08-25 14:57:48
回答 4查看 6.3K关注 0票数 3

如何为x264体系结构编译i386库?通常,为了强制使用架构,我将使用以下命令:

代码语言:javascript
复制
./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二进制文件。

EN

回答 4

Stack Overflow用户

发布于 2011-08-25 15:06:47

Autotooled configure脚本具有特殊的命令行参数--build--host,它们用于配置交叉编译。一些旧的配置脚本试图通过检查编译器的输出来确定它们是交叉编译的,但是显式地告诉配置脚本更明智和更健壮。

例如,请参见这里。或这个问题.

(哦,您所看到的“未知选项”错误的直接原因是环境变量重写在sh命令行上的脚本名称之前,而不是在它之后。它不是make__,可以在make命令行本身给出变量定义。)

票数 5
EN

Stack Overflow用户

发布于 2012-11-28 20:37:16

在阅读了配置脚本和config.sub文件之后,我发现以下内容可以用于构建libx264的i386版本:

代码语言:javascript
复制
./configure --host=i386-apple-darwin

我还遇到了“没有工作的C编译器发现”的错误。我将LDFLAGS环境变量设置为错误。因此,在继续之前,请确保LDFLAGS和CFLAGS是空的(或良好的)。

代码语言:javascript
复制
export CFLAGS=""
export LDFLAGS=""
票数 4
EN

Stack Overflow用户

发布于 2011-08-25 15:24:14

如果你有一个x86-64 gcc,你可以提供"-m32“来要求它编译一个32位二进制。因此,您应该能够使用这样的配置:

代码语言:javascript
复制
./configure CFLAGS="-m32"

但是,如果这不起作用,那么它可能是自动工具中的一个bug,并且CFLAGS正在被覆盖。你可以尝试另一种选择:

代码语言:javascript
复制
make CFLAGS="-m32"

后者的问题是,您必须记住这样做,否则,您最终会遇到一些为不同架构构建的对象文件的链接问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7192611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档