2015-05-24 6 views
0

Я пытаюсь построить PHP с помощью следующей конфигурации сборки:Compile и установить php5.4, сделать: *** [libphp5.la] Ошибка 1

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr/include/libxml2/libxml --enable-xml --enable-sockets --with-apxs2=/usr/local/httpd/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2=/usr/bin/bzip2 --enable-maintainer-zts 

и tnhen запустить make. В какой-то момент во время процесса сборки я получаю:

/usr/bin/ld: /usr/local/lib/libbz2.a(bzlib.o): relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC 
/usr/local/lib/libbz2.a: could not read symbols: Bad value 
collect2: ld returned 1 exit status 
make: *** [libphp5.la] Error 1 

Некоторая информация о моей системе:

[[email protected] php-5.4.41]# rpm -qa|grep libxml 
libxml2-devel-2.7.6-17.el6_6.1.x86_64 
libxml2-2.7.6-17.el6_6.1.x86_64 
[[email protected] php-5.4.41]# rpm -qa|grep libtool 
libtool-ltdl-devel-2.2.6-15.5.el6.x86_64 
libtool-ltdl-2.2.6-15.5.el6.x86_64 
libtool-2.2.6-15.5.el6.x86_64 
[[email protected] php-5.4.41]# rpm -qa|grep bzip 
bzip2-1.0.5-7.el6_0.x86_64 
bzip2-libs-1.0.5-7.el6_0.x86_64 

Может кто-нибудь мне помочь?

+0

Это похоже на попытку скомпилировать библиотеку не 64 бит. /usr/local/lib/libbz2.a – jcoppens

+0

Да, я скомпилировал метод bzip2 неправильно. Правильный способ - «make -f xxx.so» – qiandutianxia

ответ

1

Это похоже на попытку скомпилировать библиотеку не 64 бит. /usr/local/lib/libbz2.a, похоже, не является правильным местом для libbz2 (обычно системные библиотеки устанавливаются в/usr/lib). Как он был установлен?

+0

Спасибо за ваш ответ, я перекомпилирую bzip2, php может работать нормально. Метод, который я начал компилировать, bzip2 был неправильным, потому что я прямо использовал «make». Перед использованием «make» вы должны инициализировать «make -f xxx.so». – qiandutianxia