Почему эта последовательность команд компиляции продолжает создавать 64-битный файл? - PullRequest
0 голосов
/ 28 января 2011

Я использую Mac OSX и пытаюсь скомпилировать двоичный файл из исходного кода.

команды, которые я использую:

 /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

Я уже пробовал также включить ряд других флагов

-arch x86_64

и

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

но каждый раз, когда я проверяю скомпилированный файл, он говорит мне, что это пакет x86_64.

Что мне не хватает?

Ответы [ 3 ]

2 голосов
/ 28 января 2011

Случайная догадка, возможно, не верная.Попробуйте вместо этого установить CC.

CC="gcc -m32"

Редактировать:

Причина, по которой я предлагаю, заключается в том, что я не знаю, всегда ли в вашей сборке учитывается CFLAGS.

2 голосов
/ 28 января 2011

Попробуйте добавить -m32 к флагам. Я сомневаюсь, что флаги оптимизации имеют значение здесь.

Из руководства по gcc:

   -m32
   -m64

Создание кода для 32-разрядной или 64-разрядной среды. 32-разрядный среда устанавливает int, long и указатель на 32 бита и генерирует код это работает на любой системе i386. Наборы 64-битной среды int to 32-битный и длинный и указатель на 64-битный и генерирует код за Архитектура AMD x86-64. Для Дарвина поворачивается только опция -m64 отключить опции -fno-pic и -mdynamic-no-pic.

1 голос
/ 13 апреля 2011

После настройки я отредактировал Makefile и изменил следующее:

CC = куб. в CC = cc -m32

И вуаля.

...