プロジェクトを autotools に変換しようとしています。私のプロジェクトは、プログラムとライブラリで構成されています。ライブラリはプログラムとリンクされていません。代わりに、ライブラリは他のプログラムとリンクされ、私のプログラムと通信します。私のプログラムは 64 ビットですが、どのプログラムでも確実に使用できるようにするには、32 ビットと 64 ビットの両方のライブラリが必要です。これを行う方法がわかりません。autotools は、パッケージ全体で 1 つのホスト アーキテクチャしかサポートしていないようです。
-m32 フラグを設定して 32 ビット ライブラリを取得しようとしましたが、リンカーが /usr/lib32 ではなく /usr/lib とリンクしようとするため、うまくいきません。/usr/lib32 をリンカー フラグに追加しても、次のようなエラーが発生します。
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/../../../../lib/crti.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/crtbeginS.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/crtendS.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/../../../../lib/crtn.o' is incompatible with i386 output
したがって、これは正しい方法ではないと思います。もちろん、ライブラリ用に別のパッケージを作成することもできますが、それは避けたいと思います。すべてを1つのパッケージに収めることは可能ですか?
このソリューションはクロスプラットフォームである必要はありません。このプログラムは Linux 専用です。