2011-01-27 10 views
0

私はMac OSXを使用しており、ソースからバイナリをコンパイルしようとしています。私が使用しているこのコマンドシーケンスをコンパイルすると、64ビットファイルが作成され続けるのはなぜですか?

のコマンドは、私が以前にも他のフラグの数

-arch x86_64の

--with-php-config="/Applications/MAMP/bin/php5.3/bin/php-config" 

含めて試してみた

/Applications/MAMP/bin/php5.3/bin/phpize CFLAGS='-O2 -arch i386 -arch ppc -g -Os' LDFLAGS='-O2 -arch i386 -arch ppc ' CXXFLAGS='-O2 -arch i386 -arch ppc -g -Os' 
    ./configure --disable-dependancy-tracking --disable-shared -enable-static 
    make 
    make install 

ですが、コンパイルされたファイルをチェックするたびに、それがx86_64バンドルであることがわかります。

私には何が欠けていますか?

答えて

2

フラグに-m32を追加してみてください。私は最適化フラグがここで違いを生み出すのではないかと疑う。 GCCのマニュアルから

-m32 
    -m64 

32ビットまたは64ビット環境用のコードを生成します。 32ビットの 環境は、int、long、および32ビットへのポインタを設定し、すべてのi386システムで実行されるコード を生成します。 64ビット環境では、 intを に32ビット長で64ビットに設定し、 AMDのx86-64アーキテクチャではコード を生成します。 darwinの場合、-m64オプションは、-fno-picオプションと-mdynamic-no-picオプションをオフにして、 になります。

+0

私は間違いなく-m32を追加しようとしましたが、CFLAGSなどに入れました。CFLAGS = '-O2 -arch i386 -arch ppc -g -Os''私が試していないことの1つは、 CFLAGS。 --- EDIT --- '/tmp/apd/apd-1.0.1:file /usr/lib/php/extensions/no-debug-non-zts-20090626/apd.so /usr/lib/php /拡張/ no-debug-non-zts-20090626/apd.so:Mach-O 64ビットバンドルx86_64'はまだ64ビットになっています –

+0

./configureを実行した直後にMakefileを編集しようとしましたか?私は、フラグが単に使用されていないというマークの仮説に同意します。 –

2

ランダムな推測、おそらくは正しくない。代わりにCCを設定してみてください。

CC="gcc -m32" 

編集:私の提案のための

理由は、CFLAGSは常にビルドに尊敬されている場合、私は知らないということです。

+0

悲しいことに、 'modules/apd.so:Mach-Oの64ビットバンドルx86_64'はconfig.hを削除し、以前の.soを削除し、CC =コマンドだけでphpizeを実行しましたが、まだ64ビットとして出ています。私は奇妙なパスの事が起こっているかどうか疑問に思う –

+0

実際のコンパイル出力を見ることができますか?変更が発生していることを確認できますか? –

1

設定した後、私はMakefileを編集して、次のように変更:

CC = ccの にCC = ccで-m32

出来上がり。