12

での解決策

gcc/cmake を使用して 64 ビット Linux マシンで 32 ビット バイナリをコンパイルする方法

CFLAGS変数をすでに使用しているサードパーティのソフトウェアやその他のものを使用しているため、不可能です。そして、彼らのメイクファイルにパッチを当てることは許可されていません - 私の上司は言います。

だから私はそれを強制する別の方法を見つけなければなりません。おそらく、gcc への呼び出しを 32 ビット バージョンのコンパイラにリダイレクトするシンボリック リンクを使用した何らかの魔法 (デフォルトのターゲットが動的に検出されないことを期待)。

4

2 に答える 2

2

gcc とその仲間が "/usr/bin" にあるとします。また、パスに「~/.local/bin」というフォルダーがあると仮定します。次のように、「~/.local/bin」に「gcc」という名前の bash スクリプトを作成できます。

#! /ビン/バッシュ
/usr/bin/gcc -m32 $@

同様に、次のような内容の "g++" スクリプトを作成できます。

#! /ビン/バッシュ
/usr/bin/g++ -m32 $@

基本的にこれを「c++」「cc」「as」「ld」など必要に応じて続けます。スクリプトを実行可能にします。「~/.local/bin」が「/usr/bin」の前にPATH環境変数にあることを確認してください。その場合、makefile がコンパイラを呼び出すと (相対パスを使用すると仮定して)、代わりにスクリプトが呼び出されます。

于 2009-11-04T15:27:17.440 に答える