0

我正在编译我的程序,架构设置为

-mtune=i386

但是,我也静态链接到几个库(libpng、zlib、jpeglib、vorbisfile、libogg)。我已经使用 configure 和 make 自己构建了这些库,所以我猜这些库是在将架构设置为我的系统架构(即 i686)的情况下构建的。但我不想那样!我也希望我的程序在 i386 上运行,所以我需要确保我静态链接的所有这些库也是为 i386 构建的。

所以我的问题是:有没有一种方便的方法来为 i386 构建 libpng/zlib/jpeglib/vorbisfile/libogg 等,还是我必须手动修改所有的 makefile 并确保 -mtune 设置为 i386?

感谢帮助!

安迪

4

2 回答 2

2

我认为

CFLAGS="-march=i386 -O3" make ...

如果他们使用自动工具生成 Makefile 可能会起作用。如果 RPM 具有所需版本的 .a 和标头,您也可以从 RPM 中提取文件。或者去一个 SRPM 并修改规范/脚本来构建拱门:

RPM_ARCH="i386"

但是正确地重建库确实不是那么麻烦,以确保您不会错过任何东西。这不像您正在编译整个发行版。

于 2010-05-17T16:32:34.753 回答
2

--mtune只调整指令输出(排序、调度等),但不保证输出仅为 i386,这就是--mcpuor--march或 TARGET 的用途(i386-...

于 2010-05-17T16:31:26.567 回答