Błąd podczas tworzenia: błąd krytyczny: pcre.h: Brak takiego pliku lub katalogu

80

Właśnie skończyłem instalować Ubuntu 13.10.

Chcę wypróbować Phalcon, a kiedy buduję źródło (phalcon.so), mam ten błąd:

     from /home/fabrice/Downloads/cphalcon/build/32bits/phalcon.c:204:
/usr/include/php5/ext/pcre/php_pcre.h:29:18: fatal error: pcre.h: No such file or directory
 #include "pcre.h"
                  ^
compilation terminated.
make: *** [phalcon.lo] Erreur 1

Moja instalacja lampy to:

sudo apt-get install -y apache2 php5 mysql-server libapache2-mod-php5 php5-mysql php5-curl php5-imagick php5-mcrypt php5-memcache php5-sqlite php5-xdebug php-apc php5-intl php-dev-mongo php5-intl php-dev mongo php5 gcc

Czy ktoś może mi pomóc ?

fabrice
źródło
php -v: PHP Ostrzeżenie: Uruchomienie PHP: Nie można załadować biblioteki dynamicznej '/usr/lib/php5/20121212/phalcon.so' - /usr/lib/php5/20121212/phalcon.so: undefined symbol: php_end_ob_buffer in Unknown on linia 0 PHP 5.5.3-1ubuntu2.2 (cli) (zbudowano: 28 lutego 2014 20:03:35) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies z Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
fabrice

Odpowiedzi:

215

Najnowsza wersja Phalcon korzysta z bibliotek PCRE.

Możesz je zainstalować w następujący sposób:

sudo apt-get install libpcre3-dev

a następnie spróbuj ponownie zainstalować Phalcon

W przypadku CentOS będziesz musiał użyć

sudo yum install pcre-devel

Kredyty: @ xgretsch

W przypadku komputerów Mac możesz użyć

brew install pcre

Kredyty @ Brandon Romano

Dla komputerów Mac bez brew

Wejdź na https://www.pcre.org/ i pobierz najnowszy pcre :,

tar -xzvf pcre-8.42.tar.gz
cd pcre-8.42
./configure --prefix=/usr/local/pcre-8.42
make
make install
ln -s /usr/local/pcre-8.42 /usr/sbin/pcre
ln -s /usr/local/pcre-8.42/include/pcre.h /usr/include/pcre.h

Kredyty @ user1377324

Nikolaos Dimopoulos
źródło
4
Na komputerze Mac możesz użyć:brew install pcre
Brandon Romano
2
Dzięki temu wydaje się, że rozwiązałem problem podczas instalowania rozszerzenia PHP mongodb przy użyciu PECL.
Carlos F
6

Aby dołączyć plik pcre.h, wyszukaj w archiwach pakietów plik pcre.h. Aby to zrobić, używam polecenia o nazwie apt-file (

apt-get install apt-file

i

aktualizacja apt-file

jeśli nie masz go zainstalowanego).

Następnie wyszukaj pakiet pcre:

apt-file search -x "/pcre.h$"

-X informuje polecenie, że chcę użyć wyrażenia regularnego jako wzorca. apt-file dostarczył mi trzy trafienia:

  • kannel-dev: /usr/include/kannel/gwlib/pcre.h
  • libajax6-dev: /usr/include/ajax/pcre.h
  • libpcre3-dev: /usr/include/pcre.h

Ostatni to ten, którego chcę:

apt-get install libpcre3-dev

To rozwiąże problem z kompilacją pliku pcre.h. Mam nadzieję, że pomoże to innym, którzy mogą przyjść, aby znaleźć odpowiedź na ten wątek.

stackMonk
źródło
2

Dla Mac OSX Maverick możesz użyć

brew install pcre

jeśli powoduje błąd, możesz użyć

sudo ln -s /opt/local/include/pcre.h /usr/include/
sudo pecl install apc 
Astm
źródło