Error building : fatal error: pcre.h: No such file or directory

I'm just finished installing Ubuntu 13.10.

I want try Phalcon, and when I build the source (phalcon.so), I have this error :

     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

My installation of lamp is :

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-mongo php5-dev gcc

Can anybody help me ?

98375 次浏览

The latest version of Phalcon uses PCRE libraries.

You can install them like so:

sudo apt-get install libpcre3-dev

and then try and install Phalcon again

For CentOS you will need to use

sudo yum install pcre-devel

Credits: @xgretsch

For Mac you can use

brew install pcre

Credits @Brandon Romano

For Mac without brew

Go to https://www.pcre.org/ and download latest 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

Credits @user1377324

To include pcre.h file, search the package archives for the pcre.h file. To do this I use a command called apt-file (

apt-get install apt-file

and

apt-file update

if you don’t have it installed).

Then search for the pcre package:

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

The -x informs the command that I want to use a regular expression as the pattern. apt-file provided me with three hits:

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

The last one is the one I want:

apt-get install libpcre3-dev

This will solve the problem with pcre.h file compilation problem. Hope it will help others, who may come to find an answer to this thread.

For mac osx maverick you can use

brew install pcre

if it gives you error, you can use

sudo ln -s /opt/local/include/pcre.h /usr/include/
sudo pecl install apc

I have installed pcre via homebrew in Big Sur, so linked as:

sudo ln -s /opt/homebrew/include/pcre2.h /usr/local/include/

For MacOS monterey amd64 (darwin), it is necessary to create a symlink.

First, locate where the pcre.h was installed by Brew:

$ brew list pcre | grep 'pcre\.h$'


/opt/homebrew/Cellar/pcre/8.45/include/pcre.h

Then, gets the directory that GCC is looking for header (.h) files:

$ cpp -v


...
#include <...> search starts here:
/Library/Developer/CommandLineTools/usr/lib/clang/13.0.0/include
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include
/Library/Developer/CommandLineTools/usr/include   # <---- we are going to use this one
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks (framework directory)

Finally, create a symlink to the pcre.h file, so that GCC will find it in its search path:

ln -s /opt/homebrew/Cellar/pcre/8.45/include/pcre.h \
/Library/Developer/CommandLineTools/usr/include/pcre.h

To test if it worked, we can use the following C code:

#include <stdio.h>
#include <pcre.h>
int main() {
printf("lala popo");
return 0;
}

And run:

gcc test.c -o test

🎉🎉🎉🎉🎉🎉

Using macOS Monterey 12.6 on an M1 Pro MacBook Pro, here are the steps necessary to install outh extension for PHP 8.1 using brew:

  1. brew install pcre
  2. brew install pcre2
  3. sudo ln -s /opt/homebrew/include/pcre.h /usr/local/include/
  4. sudo ln -s /opt/homebrew/include/pcre2.h /usr/local/include/
  5. sudo pecl install oauth