Ошибки компиляции PHP с GD2 и Freetype на Mac Leopard 10.5.6 - PullRequest
0 голосов
/ 22 апреля 2009

Я компилирую PHP5.2.9 на Mac OS X 10.5.6. Нужна помощь, чтобы понять это.

У меня есть PHP-компиляция и работа с базовой конфигурацией, и сейчас я пытаюсь скомпилировать с GD2. Проблема, с которой я сталкиваюсь, заключается в том, что если я добавлю аргумент для сборки с помощью Freetype, я получу ошибки сборки. Это мой минимальный конфиг для демонстрации проблемы. Кроме того, я знаю, что существуют другие требования для libjpeg / libpng и т. Д. Я не включаю их сейчас, чтобы сделать это проще.

sudo ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/conf/php \
--enable-fastcgi \
--with-freetype-dir=/usr/local \
--with-gd 

Ошибка:

checking for FT_New_Face in -lfreetype... no
configure: error: Problem with freetype.(a|so). Please check config.log for more information.

Это из журнала ошибок:

configure:36779: gcc -o conftest  -gstabs  -no-cpp-precomp -Wl,-rpath,/usr/loca$
Undefined symbols:
  "_FT_New_Face", referenced from:
      _main in ccgzHTP6.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
configure: failed program was:
#line 36768 "configure"
#include "confdefs.h"
/*     Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */

У меня freelib-2.1.3, собранный из исходного кода и установленный в / usr / local /, как я определил в аргументе --with-freetype-dir. Я думаю, это говорит мне о том, что он пытается найти файл шрифта, но я не уверен, когда или если такой шрифт устанавливается.

Если я собираю без Freetype, GD2 будет собирать и устанавливать, но я хочу иметь возможность Freetype в моей системе. Ниже приведена полная настройка конфигурации с опцией Freetype (которая не работает!)

sudo ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/conf/php --enable-fastcgi \
--with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local \
--with-zlib-dir=/usr/local \
--enable-gd-native-ttf \
--with-tlib=/usr/local \
--with-freetype-dir=/usr/local \
--with-xpm-dir=/usr/X11R6 \
--with-gd 

Ответы [ 2 ]

1 голос
/ 22 апреля 2009

Хорошо, сделал что-то действительно глупое. Я точно забыл, откуда я скачал Freetype2, но версия 2.1.3 ГОДА устарела. Я только что обновился до 2.3.9, и он чертовски прекрасно компилируется. BLEH.

Будьте осторожны, коллеги-поисковики Google. Первый шаг к устранению неполадок - убедиться, что вы используете самые последние версии ваших требований.

0 голосов
/ 30 сентября 2010

Установка пользовательской версии PHP, включая нужные расширения, может быть сложной задачей. Альтернативой компиляции всего с нуля является использование MacPorts , которое предоставляет нужные исходные файлы, зависимости и полностью автоматизирует процесс настройки, сборки и установки.

В коллекции портов MacPorts присутствует последняя версия PHP и почти все расширения и инструменты. Когда выходит новая версия PHP, она обычно довольно скоро попадает в MacPorts, что позволяет очень легко обновить установленную версию.

Если вы разрабатываете LAMP / MAMP, MacPorts также предоставляет последние версии серверов Apache и MySQL.

...