Linux gcc架构问题

Linux gcc架构问题,linux,gcc,makefile,configure,Linux,Gcc,Makefile,Configure,我正在编译我的程序,架构设置为 -mtune=i386 然而,我还针对几个lib(libpng、zlib、jpeglib、vorbisfile、libogg)进行静态链接。我自己使用configure和make构建了这些lib,所以我猜这些lib是在将体系结构设置为我的系统体系结构(即i686)的情况下构建的。但我不想那样!我希望我的程序也能在i386上运行,所以我需要确保我静态链接的所有lib都是为i386构建的 所以我的问题是:是否有一种方便的方法为i386构建libpng/zlib/jp

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

-mtune=i386
然而,我还针对几个lib(libpng、zlib、jpeglib、vorbisfile、libogg)进行静态链接。我自己使用configure和make构建了这些lib,所以我猜这些lib是在将体系结构设置为我的系统体系结构(即i686)的情况下构建的。但我不想那样!我希望我的程序也能在i386上运行,所以我需要确保我静态链接的所有lib都是为i386构建的

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

谢谢你的帮助

Andy

-mtune
仅调整指令输出(排序、调度等),但不保证输出仅为i386,这就是
-mcpu
-march
或TARGET的目标(
i386-…

-mtune
仅调整指令输出(排序、调度等),但不能保证输出仅为i386,我认为这就是
--mcpu
--march
或TARGET的目标(
i386-…

CFLAGS=“-march=i386-O3”制造…

如果他们使用自动工具生成Makefile,可能会起作用。如果文件具有所需版本的.a和标题,也可以从RPM中提取这些文件。或者选择SRPM并修改规范/脚本以构建arch:

RPM_ARCH="i386"
但是,正确地重建库并没有那么麻烦,以确保不会遗漏任何内容。您并不是在编译整个发行版。

我想

CFLAGS=“-march=i386-O3”制造…

如果他们使用自动工具生成Makefile,可能会起作用。如果文件具有所需版本的.a和标题,也可以从RPM中提取这些文件。或者选择SRPM并修改规范/脚本以构建arch:

RPM_ARCH="i386"
但是,正确地重建库并没有那么麻烦,以确保不会遗漏任何内容。您并不是在编译整个发行版。

I对象!:-)这是一个很大的麻烦,因为configure脚本生成了一个50 KB的makefile beast,其中包含大量对“i686”的引用。在执行./configure--target=i386时,这些引用也不会消失。分析那里发生的事情真的不是那么容易。。。创建自己的makefile可能比处理自动生成的makefile更容易…I object!:-)这是一个很大的麻烦,因为configure脚本生成了一个50 KB的makefile beast,其中包含大量对“i686”的引用。在执行./configure--target=i386时,这些引用也不会消失。分析那里发生的事情真的不是那么容易。。。创建自己的makefile可能比处理自动生成的makefile更容易。。。