我已经使用--enable-utf8 --enable-unicode-properties
和pcretest -C utf
重新调整1
从源代码编译了pcre 8.38。
which pcretest
返回/home/mybin/bin/pcretest
但是,当使用glib 2.48
编译PCRE_LIBS="/home/mybin/lib" PCRE_CFLAGS="/home/mybin/bin"
时,我从configure.log中收到configure
错误
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.
还有什么我应该检查才能让glib configure
通过吗?
答案 0 :(得分:6)
我也遇到了他的问题。确保LD_LIBRARY_PATH中还有$ PCRE_INSTALL_DIR / lib。这解决了我的问题。
答案 1 :(得分:3)
首先,确保在配置期间启用unicode:
./configure --enable-utf --enable-unicode-properties
然后make
。稍后,安装使用此:
make pkgconfigdir=/usr/lib/pkgconfig install
答案 2 :(得分:2)
ldconfig
步make install
后运行libpcre
。之后在glib中尝试./configure
。
答案 3 :(得分:2)
如果内部glib pcre是可接受的选项,那么您可以在configure中使用--with-pcre
。
答案 4 :(得分:1)
./配置测试UTF-8支持,编译一个小测试程序(第27618行)并运行它:
#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;
}
如果该测试程序无法正确编译和运行,或者由于任何原因返回1,则./configure将表示没有UTF-8支持。 检查您的操作系统是否可以在PCRE lib目录中找到共享库。您可以通过编译上述测试程序并确保它可以在没有崩溃的情况下运行,因为缺少共享库。
我遇到了这个问题,但即使我修复它,Glib也无法在PCRE中检测到UTF-8支持。当发生这种情况时,您可以尝试编辑./configure跳过该测试,但未通过该测试暗示存在其他问题,因此我不建议这样做。
答案 5 :(得分:1)
只有路径的PCRE_LIBS和PCRE_CFLAGS是不够的。
在我的情况下,用pcre-8.38编译glib-2.52.3,我用过
PCRE_CFLAGS="/usr/local/include"
PCRE_LIBS="/usr/local/lib",
并获得The system-supplied PCRE does not support Unicode properties or UTF-8
结果。
我按照config.log,发布了这个
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
PCRE_CFLAGS="-I/usr/local/include"
PCRE_LIBS="-L/usr/local/lib"
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
与此同时,做出最后的改变
PCRE_CFLAGS="-I/usr/local/include"
PCRE_LIBS="-L/usr/local/lib -lpcre"
答案 6 :(得分:1)
我在glib README中找到以下单词,对我有用 关于GLib 2.48的注意事项 =====================
答案 7 :(得分:0)
我做了另外一件事,使用pcre 8.39编译glib 2.52.3
LD_LIBRARY_PATH=$PREFIX/lib ./configure <...>
其中$PREFIX/lib
是libpcre.so所在的位置。
不设置LD_LIBRARY_PATH,在config.log中:
./conftest: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
修改PCRE_CFLAGS或PCRE_LIBS没有帮助...