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

5

84

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 ?

Fertilizer answered 21/3, 2014 at 10:0 Comment(1)
php -v : PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/phalcon.so' - /usr/lib/php5/20121212/phalcon.so: undefined symbol: php_end_ob_buffer in Unknown on line 0 PHP 5.5.3-1ubuntu2.2 (cli) (built: Feb 28 2014 20:03:35) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies with 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 – Fertilizer
C
238

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

Certifiable answered 21/3, 2014 at 13:20 Comment(2)
On mac you can use: brew install pcre – Cirque
Thanks that seems to have fixed the problem for me when installing mongodb's PHP extension using PECL. – Unduly
B
10

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

πŸŽ‰πŸŽ‰πŸŽ‰πŸŽ‰πŸŽ‰πŸŽ‰

Blackness answered 10/2, 2022 at 21:32 Comment(0)
F
9

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/
Fennessy answered 1/6, 2016 at 12:37 Comment(2)
also, make sure /usr/local/include/ folder is exists. (mac osx big sur) – Topdrawer
sudo ln -s /opt/homebrew/include/pcre.h /usr/local/include/ after brew install pcre solved issue with building Haskell project with stack – Alysiaalyson
A
8

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.

Aspidistra answered 10/12, 2015 at 9:11 Comment(0)
E
2

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
Epenthesis answered 13/10, 2022 at 6:51 Comment(0)

© 2022 - 2024 β€” McMap. All rights reserved.