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

--mtune命令出力 (順序付け、スケジューリングなど) のみを調整しますが、出力が i386 のみであることを保証しません。それが--mcpuor--marchまたは TARGET の目的です ( i386-...)

于 2010-05-17T16:31:26.567 に答える
2

おもう

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

autotools を使用して Makefile を生成すると機能する可能性があります。必要なバージョンの .a とヘッダーがある場合は、RPM からファイルを抽出することもできます。または、SRPM を使用して仕様/スクリプトを変更し、アーキテクチャ用にビルドします。

RPM_ARCH="i386"

しかし、何も見落とさないようにするために、ライブラリを適切に再構築するのはそれほど面倒なことではありません。ディストリビューション全体をコンパイルしているわけではありません。

于 2010-05-17T16:32:34.753 に答える