2010-05-17 85 views
0

我编译我的架构设置程序GCC架构问题

-mtune=i386 

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

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

感谢您的帮助!

安迪

回答

2

--mtune仅调谐指示输出(订货,调度等),但并不保证输出仅I386,那是什么--mcpu--march或目标是(i386-...

2

我想,如果他们使用自动工具来生成Makefile文件

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

可能会奏效。你也可以从RPM中提取文件,如果他们有你想要的版本的.a和头文件。或者去一个SRPM和修改规格/脚本来建立拱:

RPM_ARCH="i386" 

真的是没有那么多的麻烦,重建库正常,以确保您不会错过任何东西。它不像你在编译整个发行版。

+0

我反对! :-)这很麻烦,因为配置脚本生成了一个50 KB的makefile野兽,其中包含大量对“i686”的引用。这些参考文件也不会在执行时消失./configure --target = i386 真的不容易分析那里正在发生的事情......它可能会更容易创建我自己的生成文件,而不是搞乱汽车生成一个... – Andy 2010-05-17 18:44:59