编译 pcre - 开源的正则表达式(库)
PCRE百科介绍:
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的。Boost太庞大了,使用boost regex后,程序的编译速度明显变慢。测试了一下,同样一个程序,使用boost::regex编译时需要3秒,而使用pcre不到1秒。因此改用pcre来解决C语言中使用正则表达式的问题
pcre库官网:http://www.pcre.org/
下载源代码放到 C:\pcre-8.35
运行 msys
cd /c/pcre-8.35
configure --disable-cpp --prefix=/local/pcre #配置参数:将生成的库文件保存到 msys/local/pcre 文件夹中
make
make install #完成后,在 msys/local/pcre 文件夹中就能找到 include,lib,include文件夹。
就可以在codeblocks中配置使用prce了。
---------------------------------------------------------
configure选项:
--disable-cpp:不组建c++封装
--enable-utf8:让PCRE支持UTF8
--enable-unicode-properties:支持/P,/p,/X识别unicode字符
--enable-newline-is-crlf --enable-newline-is-anycrlf --enable-newline-is-any:制定行结束符
--enable-bsr-anycrlf:让/r匹配/r,/n或/r/n
--with-posix-malloc-threshold=xx(数字):如果调用POSIX接口,模式中捕获括号大于10时需要额外的存储空间,这里数字就是设定其阈值。
--with-match-limit=xx(数字):限制一次匹配时使用的资源数,默认值为10000000
--with-match-limit-recursion=xx(数字):限制一次匹配时的递归深度,默认为10000000(几乎可以说是无限)
--with-link-size=x(数字):默认编译好的模式大小约64k,通过该选项可以增加其大小,但增加过多会降低效率。
--disable-stack-for-recursion:使用自己的栈进行递归调用而不是默认栈以减少空间使用,但会降低效率。
--enable-rebuild-chartables:生成pcre_chartables.c而不是从pcre_chartables.c.dist中拷贝。
--enable-ebcdic:使用IBM ebcdic编码,隐含了--enable-rebuild-chartables,这样就不支持utf8了。
--enable-pcregrep-libz,--enable-pcregrep-libbz2:使用libz或/和libbz2编译pcregrep
--enable-pcretest-libreadline:使用libreadline编译pcretest,这样在终端上输入时pcretest就具有行编辑和历史记录功能。注意libreadline是GPL-licensed。
------------------------------------------------------------------
参考资料:
Linux和windows下编译pcre - http://blog.csdn.net/jollyjumper/article/details/5700024
2014-06-27
编译 pcre - 开源的正则表达式(库)的更多相关文章
- vs2015下编译免费开源的jpeg库,ijg的jpeg.lib
vs2015下编译免费开源的jpeg库,ijg的jpeg.lib 1. 去Independent JPEG Group官网www.ijg.org下载jpegsrc,我下载的版本是jpegsrc9c.z ...
- (原)linux下利用cmake来编译jthread开源库
其实上次在用hisi3531平台的时候,就已经编译过一次这个库了,这次换了平台环境,交叉编译器变成了arm-hisiv100-linux-工具链,所以,没办法只能重新来过. 因为之前编译过,所以这次还 ...
- 值得推荐的C/C++开源框架和库
值得推荐的C/C++开源框架和库 转自:http://www.cnblogs.com/lidabo/p/5514155.html - 1. Webbench Webbench是一个在Linux下 ...
- 深入浅出C/C++中的正则表达式库
写在前面: 本文是面向有正则表达式基础的读者朋友的,如果你还不知道正则表达式是什么,请先到这里学习一下 :http://en.wikipedia.org/wiki/Regular_expressio ...
- 值得学习的C语言开源项目和库
收集一些C/C++相关的源码,如有更高效的库,请提醒我 补充上去 C/C++相关交流Q群 1414577 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具. ...
- 转载一篇c++开源框架和库
值得学习的C语言开源项目 -1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性 ...
- linux下编译qt5.6.0静态库——configure配置
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- iOS、mac开源项目及库汇总
原文地址:http://blog.csdn.net/qq_26359763/article/details/51076499 iOS每日一记------------之 中级完美大整理 iOS.m ...
- linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
随机推荐
- app自动化测试Appium+python
一.node.js安装 https://nodejs.org/en/download/ ##一直下一步 ###cmd查看 二. .NET Framework安装 https://www.micros ...
- delphi中如何实现DBGrid中的两列数据想减并存入另一列
可参考下面的例子: 数据自动计算的实现:“金额”是由“单价”和“工程量”相乘直接得来的,勿需人工输入. 这可在“数据源构件”的onupdatedata例程添加如下代码实现: procedure T ...
- SpringMVC 重定向到其他系统的页面的两种方式
//测试重定向到另外的一个系统 @RequestMapping("/tttt") public void testRed(HttpServletResponse response) ...
- Scss - 简单笔记
原文链接:scss 教程 手头上疯狂在用 scss,虽然可以在里面写原生的 css, 但是为了保持风格的一致性,还是滚去看了看 scss 文档. 一.变量 变量的引入是 scss 的一个核心特性,变量 ...
- linux按时间查询日志
在系统应用集中部署的时候,很多日志因为太多难以定位,获取某段时间的日志是对运维人员非常关键的事情. 一.sed查看某时间段到现在的系统日志: sed -n '/May 20 17/,$p' / ...
- Nginx 反向代理接收用户包体方式
陶辉91课 如果proxy_request_buffering 设置为on的时候是等待nginx读取完包体后再发送上游服务器 一般依赖于nginx处理能力 client_body_in_file_o ...
- Basic remains POJ - 2305 同余模 高精度处理
题意 给出B(10以内大于0)进制下 p (1000位以内)和m(9位以内) 求 p%m 在b进制下等于什么 思路: 可以计算 1e9不会溢出Int所以m在int值以内 先求m 要处理p 每 ...
- Katu Puzzle POJ - 3678(水2 - sat)
题意: 有n个未知量,m对未知量之间的关系,判断是否能求出所有的未知量且满足这些关系 解析: 关系建边就好了 #include <iostream> #include <cstdio ...
- 【XSY2709】count DP
题目描述 有一个序列\(A\),你可以随意排列这个序列,设\(s=\sum_{i=1}^{n-1}|a_i-a_{i+1}|\) . 问你最终\(s\leq m\)的方案数有几种. 保证\(A\)中的 ...
- 【BZOJ4872】【SHOI2017】分手是祝愿 期望DP
题目大意 有\(n\)盏灯和\(n\)个开关,初始时有的灯是亮的,有的灯是暗的.按下第\(i\)个开关会使第\(j\)盏灯的状态被改变,其中\(j|i\).每次你会随机操作一个开关,直到可以通过不多于 ...