2016-03-26 16 views
7

Ho compilato pcre 8,38 dalla sorgente con --enable-utf8 --enable-unicode-properties e un pcretest -C utf retuns 1.compile glib 2.48 non riconosce pcre con supporto utf

un which pcretest rendimenti /home/mybin/bin/pcretest

Tuttavia quando compilazione glib 2.48 utilizza PCRE_LIBS="/home/mybin/lib" PCRE_CFLAGS="/home/mybin/bin" ottengo un errore di configure da configure.log

checking for PCRE... yes 
checking for Unicode support in PCRE... no 
configure: error: *** The system-supplied PCRE does not support Unicode properties or UTF-8. 

C'è qualcosa che dovrei controllare per ottenere il glib configure di passare?

+0

Vedi 'config.log' per particolari più dettagliati. – TingPing

risposta

6

Ho appena eseguito anche il suo problema. Assicurati di avere $ PCRE_INSTALL_DIR/lib anche nel tuo LD_LIBRARY_PATH. Questo ha risolto il problema per me.

2

Eseguire ldconfig dopo make install passaggio libpcre. Dopo di che prova ./configure in glib.

1

test ./configure supporto UTF-8 per la compilazione di un piccolo programma di test (linea 27618) ed eseguirlo:

#include <pcre.h> 
int main() { 
    int support; 
    pcre_config (PCRE_CONFIG_UTF8, &support); 
    if (!support) 
     return 1; 
    pcre_config (PCRE_CONFIG_UNICODE_PROPERTIES, &support); 
    if (!support) 
     return 1; 
    return 0; 
} 

Se questo programma di test non può essere compilato ed eseguito correttamente o restituisce 1 per qualsiasi motivo quindi ./configure dirà che non c'è supporto per UTF-8. Verificare che il proprio sistema operativo possa trovare le librerie condivise nella directory lib della PCRE. Puoi farlo compilando il suddetto programma di test e assicurandoti che possa funzionare senza crash a causa di una libreria condivisa mancante.

Ho avuto questo problema ma anche quando l'ho risolto, Glib non è riuscito a rilevare il supporto UTF-8 in PCRE. Quando ciò accade, puoi provare a modificare ./configure per ignorare quel test, ma fallire il test suggerisce che ci siano altri problemi, quindi non lo consiglierei.

2

Se il pcb interno è un'opzione accettabile, è possibile utilizzare --with-pcre nella configurazione.

3

prima cosa, assicurarsi di attivare unicode durante la configurazione:

./configure --enable-utf --enable-unicode-properties 

e poi make. Più tardi, per l'utilizzo di installazione questo:

make pkgconfigdir=/usr/lib/pkgconfig install 
1

PCRE_LIBS e PCRE_CFLAGS con un solo percorso non è sufficiente.

Nel mio caso, compilare glib-2.52.3 con pcre-8.38, ho usato
PCRE_CFLAGS="/usr/local/include"
PCRE_LIBS="/usr/local/lib",
e ottenere un risultato The system-supplied PCRE does not support Unicode properties or UTF-8. Ho seguito la configurazione.LOG, è inviare questo
configure:27740: checking for Unicode support in PCRE configure:27766: gcc -o conftest -g -O2 /usr/local/include -pthread conftest.c /usr/local/lib >&5 /usr/local/include: file not recognized: Is a directory collect2: ld returned 1 exit status configure:27766: $? = 1 configure: program exited with status 1

così ho cambiato il contenuto di bandiera, diventato a questo
PCRE_CFLAGS="-I/usr/local/include"
PCRE_LIBS="-L/usr/local/lib"
mi dice
configure:27740: checking for Unicode support in PCRE configure:27766: gcc -o conftest -g -O2 -I/usr/local/include -pthread conftest.c -L/usr/local/lib >&5 /tmp/cc8eu7d8.o: In function 'main': /data1/rugalzhang/glib-2.52.3/conftest.c:178: undefined reference to 'pcre_config' /data1/rugalzhang/glib-2.52.3/conftest.c:181: undefined reference to 'pcre_config' collect2: ld returned 1 exit status configure:27766: $? = 1 configure: program exited with status 1

con quello, fare il cambiamento finale
PCRE_CFLAGS="-I/usr/local/include"
PCRE_LIBS="-L/usr/local/lib -lpcre"
e ha funzionato per me

0

ho fatto anche un'altra cosa da fare glib 2.52.3 compilare con pcre 8,39

LD_LIBRARY_PATH=$PREFIX/lib ./configure <...>

dove $PREFIX/lib è dove libpcre.so bugie.

Se non si imposta LD_LIBRARY_PATH, in config.log:

./conftest: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory 

PCRE_CFLAGS modifica o PCRE_LIBS non ha aiutato ...