Ошибки при компиляции PHP с GD2 и Freetype на Mac Leopard 10.5.6

StackOverflow https://stackoverflow.com/questions/775797

  •  13-09-2019
  •  | 
  •  

Вопрос

Я компилирую 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 
Это было полезно?

Решение

Ладно, сделал что-то действительно глупое.Я забыл, откуда именно скачал Freetype2, но версия 2.1.3 устарела на НЕСКОЛЬКО ЛЕТ.Я только что обновился до версии 2.3.9, и она, черт возьми, отлично компилируется.Бле.

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top