Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kompilacja php5 - błędy
Forum PHP.pl > Forum > PHP > Object-oriented programming
chfast
Witam.
Przy kompilacji php5 pojawia mi się błąd. Z informacji jakie się w tym momencie pojawiają chyba nic nie wynika:
Kod
collect2: ld returned 1 exit status

make: *** [sapi/cgi/php] Błąd 1

Czy dokładne prześledzenie konfiguracji moża coś pomoc? Może należy zainstalować nowsze wersje kompilatorów?
seaquest
Podaj kilka ostatnich linijek wyplutych przez ./configure
chfast
Wrzucam to co moim zdaniem jest związane z tym ld i libtool.
Kod
Configuring libtool

checking for Cygwin environment... (cached) no

checking for mingw32 environment... (cached) no

checking build system type... i686-pc-linux-gnu

checking for ld used by GCC... (cached) /usr/bin/ld

checking if the linker (/usr/bin/ld) is GNU ld... (cached) yes

checking for /usr/bin/ld option to reload object files... (cached) -r

checking for BSD-compatible nm... (cached) /usr/bin/nm -B

checking for a sed that does not truncate output... (cached) /bin/sed

checking how to recognise dependent libraries... (cached) pass_all

checking for object suffix... (cached) o

checking for executable suffix... (cached) no

checking command to parse /usr/bin/nm -B output... (cached) ok

checking for ranlib... (cached) ranlib

checking for strip... (cached) strip

checking for objdir... .libs

checking for gcc option to produce PIC... (cached)     -fPIC

checking if gcc PIC flag     -fPIC works... (cached) yes

checking if gcc static flag  works... (cached) no

checking if gcc supports -c -o file.o... (cached) yes

checking if gcc supports -c -o file.lo... (cached) yes

checking if gcc supports -fno-rtti -fno-exceptions... yes

checking whether the linker (/usr/bin/ld) supports shared libraries... yes

checking how to hardcode library paths into programs... immediate

checking whether stripping libraries is possible... yes

checking dynamic linker characteristics... GNU/Linux ld.so

checking if libtool supports shared libraries... yes

checking whether to build shared libraries... no

checking whether to build static libraries... yes

creating libtool



Generating files

updating cache ./config.cache

creating ./config.status

creating php5.spec

creating main/build-defs.h

creating scripts/phpize

creating scripts/php-config

creating sapi/cli/php.1

creating main/php_config.h

main/php_config.h is unchanged

creating main/internal_functions.c

creating main/internal_functions_cli.c

+--------------------------------------------------------------------+

|                        *** WARNING ***                             |

|                                                                    |

| You will be compiling the CGI version of php without any           |

| redirection checking.  By putting this cgi binary somewhere in     |

| your web space, users may be able to circumvent existing .htaccess |

| security by loading files directly through the parser.  See        |

| http://www.php.net/manual/security.php for more details.           |

+--------------------------------------------------------------------+

| License:                                                           |

| This software is subject to the php License, available in this     |

| distribution in the file LICENSE.  By continuing this installation |

| process, you are bound by the terms of this license agreement.     |

| If you do not agree with the terms of this license, you must abort |

| the installation process at this point.                            |

+--------------------------------------------------------------------+



Thank you for using php.
seaquest
Cytat
checking dynamic linker characteristics... GNU/Linux ld.so


No w sumie to chyba chodzi o bibliotekę ld.so , może znajdź ją w Internecie i zainstaluj jeszcze raz, potem skonfiguruj i zainstaluj php... prawdę mówiąc na razie nie mam innego pomysłu....
chfast
Cytat
No w sumie to chyba chodzi o bibliotekę ld.so , może znajdź ją w Internecie i zainstaluj jeszcze raz, potem skonfiguruj i zainstaluj php... prawdę mówiąc na razie nie mam innego pomysłu....

Zainstalowałem najnowszy pakiet glibc, ale to nic nie pomogło. To chyba nie w tym jest problem.

make uruchamia jakieś polecenie (/bin/sh /root/libtool) ze sporą ilością opcji. Potem uruchamiają się kolejne programy. Ale pojawiąją się takie błędy:
Kod
/usr/src/pub/src/php-5.0.0b4/Zend/zend_reflection_api.c:2841: undefined reference to `zend_get_class_entry'

Zend/zend_reflection_api.o(.text+0x624c): In function `zif_reflection_extension_getVersion':

/usr/src/pub/src/php-5.0.0b4/Zend/zend_reflection_api.c:2865: undefined reference to `zend_get_class_entry'

Zend/zend_reflection_api.o(.text+0x6317): In function `zif_reflection_extension_getFunctions':

/usr/src/pub/src/php-5.0.0b4/Zend/zend_reflection_api.c:2884: undefined reference to `zend_get_class_entry'

Zend/zend_reflection_api.o(.text+0x64a7): In function `zif_reflection_extension_getConstants':

/usr/src/pub/src/php-5.0.0b4/Zend/zend_reflection_api.c:2932: undefined reference to `zend_get_class_entry'

Zend/zend_reflection_api.o(.text+0x65e7): In function `zif_reflection_extension_getINIEntries':

/usr/src/pub/src/php-5.0.0b4/Zend/zend_reflection_api.c:2964: undefined reference to `zend_get_class_entry'

collect2: ld returned 1 exit status

make: *** [sapi/cgi/php] B³±d 1
seaquest
czyli prawdopodobnie występują błędy w konfiguracji

ja dziś może spróbuję skompilować to u siebie, to zobaczę, a jeszcze jedno - jakiego masz linuxa bo na forum pisze, ze wersja i686 ale nic poza tym....
Jabol
to jest coś dziwnego. On poprostu próbuje to podlinkować do jakieś funkcji, która nie istnieje. Spróbuj może daj --disable-cgi (albo jakoś tak -> ./configure --help, ogólnie zaboluj jako cgi) i zainstalować jako moduł apacha (--with-apxs lub --with-apxs2).
ja osobiście kompilowałem z takimi opcjami, jeżeli chodzi o samo php (bez rozszeżeń)
Kod
./configure --prefix=/usr/local --with-apxs2 --with-config-file-path=/usr/local/etc/apache2/ --disable-short-tags --enable-versioning'
chfast
Cytat
czyli prawdopodobnie występują błędy w konfiguracji

ja dziś może spróbuję skompilować to u siebie, to zobaczę, a jeszcze jedno - jakiego masz linuxa bo na forum pisze, ze wersja i686 ale nic poza tym....

Man Mandrake 9.1. Ale narazie nie trudź się. Jeszcze mam kilka pomysłów do wykorzystania (np. ten co Jabol proponuje). Dzięki.
chfast
Cytat
to jest coś dziwnego. On poprostu próbuje to podlinkować do jakieś funkcji, która nie istnieje. Spróbuj może daj --disable-cgi (albo jakoś tak -> ./configure --help, ogólnie zaboluj jako cgi) i zainstalować jako moduł apacha (--with-apxs lub --with-apxs2).

No to próbowałem. Teraz pojawia się inny błąd:
Kod
ext/libxml/libxml.lo: file not recognized: File truncated

collect2: ld returned 1 exit status

make: *** [libphp5.la] Błąd 1

Update
Sprawdziłem i po prostu nie ma pliku ext/libxml/libxml.lo w źródłach php.

Znalazłem taki post. Dotyczy chyba tego samego problemu. Tylko niewiele z niego rozumiem, ale może ktoś jest bardziej rozgarnięty biggrin.gif .
seaquest
w tych postach jest mowa niby o podobnej sprawie ale troszke innej, bo ten gosc instaluje php5b3 z o ile dobrze pamietam php4.3.2 rpm, a ty instalujesz ze zrodel. a sprobuj moze zainstalowac najnowsze libtool

a poza tym zacznij korzystac z redhata, ja skompilowalem wczoraj bez problemow
chfast
Cytat
sprobuj moze zainstalowac najnowsze libtool

Wlaśnie to zrobiłem i nic. A masz może ten plik libxml.lo? Spróbuje go skopiować gdzie trzeba. Choć to dość dziwne żeby w źródłach brakowało jakiegoś pliku. Jakoś musi sie udać smile.gif .
Jabol
Cytat
Choć to dość dziwne żeby w źródłach brakowało jakiegoś pliku. Jakoś musi sie udać smile.gif .
Tego pliku nie brakuje. Tu coś poszło źle z kompilacją. Spróbuj poszperac jaka wersja biblioteki libexpat i libxml jest potrzebna do kompilacji. Spróbuj dać tak
Kod
make > make.log 2>&1
jak się skończy (gdy wyskorzy prompt, do tego czasu pobaw się na innej konsoli winksmiley.jpg ) to przeanalizuj make.lod pod konetem błędów. Podejrzewam, że po prostu masz jakąś bibliotekę w złej wersji.
chfast
Cytat
Tego pliku nie brakuje. Tu coś poszło źle z kompilacją. Spróbuj poszperac jaka wersja biblioteki libexpat i libxml jest potrzebna do kompilacji.

Tu nie chodzi tylko o libxml. Instalowałem wczoraj najnowszą. Pliki *.lo są potrzebne do kompliacji każdego rozszerzenia. Próbowałem to nawet kompilować bez rozszerzeń. Dalej brakuje jakiegoś pliku:
Kod
regex/regcomp.lo: file not recognized: File truncated

collect2: ld returned 1 exit status

make: *** [libphp5.la] Błąd 1
chfast
Dałem rade...
Wszystkie problemy wynikały z mojej niewielkiej (jeszcze) znajomości linuxa. Uruchomilem configure z innego skryptu bash i pliki tworzyły się nie tam gdzie trzeba.
Dziękuje wszystkim za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.