Компиляция PHP - связывается с библиотекой

Человек Ubuntu pagea, кажется, не предлагает синтаксис

local0.* :omfile:$test_rotated

сайт, который Вы связали, советует - он говорит:

Keep  in  mind  that $outchannel just defines a channel with "name". It
does not activate it.  To do so, you must  use  a  selector  line  (see
below).  That selector line includes the channel name plus an $ sign in
front of it. A sample might be:

       *.* $mychannel

Возможно, это работает:

local0.* $test_rotated

a: Это, по-видимому, зависит от версии rsyslog Вы используете, следовательно на релизе Ubuntu. Это таким образом было бы сохранение, чтобы просто посмотреть на Вашу страницу справочника (man rsyslog.conf) или выбрал правильный выпуск в сайте, который я связал.

1
07.02.2013, 14:16
1 ответ

Существует два отличных пути компоновщика, время компиляции и время выполнения.

Я нахожу autoconf (configure) редко настраивается, чтобы сделать корректную вещь с альтернативными местоположениями библиотеки, с помощью --with-something= обычно не генерирует корректные флаги компоновщика (-R или -Wl,-rpath). Если Вы только имели .a библиотеки это работало бы, но для .so библиотеки, что необходимо указать, RPATH:

export PHP_RPATHS=/usr/local/php5/lib
./configure [options as required] 

(Во многих случаях просто добавление LDFLAGS к configure команда используется, но процесс сборки PHP немного отличается.)

Это эффективно добавляет дополнительные пути поиска компоновщика к каждому двоичному файлу, как будто те пути были указаны в LD_LIBRARY_PATH или Ваша конфигурация компоновщика по умолчанию (/etc/ld.so.conf). Это также заботится о добавлении -L/usr/local/php5/lib кому: LDFLAGS так, чтобы время компиляции и время выполнения пользовались библиотеками, из того же каталога (существует потенциал для проблем с несогласованными версиями в различных местоположениях, но Вы не должны волноваться здесь).

После того, как созданный, можно свериться:

 $ objdump -j dynamic -x ./sapi/cli/php | grep RPATH
 RPATH       /usr/local/php5/lib
 $ objdump -j dynamic -x ./libs/libphp5.so | fgrep RPATH
 RPATH       /usr/local/php5/lib

Выполнение ldd также подтвердит, какие библиотеки загружаются из где.

Что --with-jpeg-dir должен быть действительно использоваться для, должен указать на /usr/local/ или некоторый каталог верхнего уровня, каталоги include/, lib/, и возможно другие добавляются в зависимости от того, в чем нужен компилятор/компоновщик.

Вам только нужно --with-jpeg-dir если configure не может найти установку, настроить, автоматически найдет его в /usr/local и другой (возможно конкретная платформа) "стандартные" места. В Вашем случае я думаю configure находит libjpeg в стандартном месте и тихо игнорирует директиву.

(Кроме того, PHP 5.3.13 больше не является текущим, я предлагаю 5.3.21, текущая версия в это время.)

2
27.01.2020, 23:39

Теги

Похожие вопросы