1、编译PCRE正则表达式库 (1) (MinGW + MSYS) 将PCRE源码包直接拷贝到MSYS目录下,(如:C:\MSYS\1.0\pcre\) 运行msys.bat启动MSYS, 在命令行输入 cd / // 回根目录 cd pcre // 进入PCRE目录 ./configure // 配置编译 make // 编译全部 完成后,会在C:\MSYS\1.0\pcre\.libs\ 下生成所需要的文件: libpcre-0.dll // PCRE的动态链接库 libpcre.dll.a // 调用PCRE动态链接库所用的LIB libpcre.a // PCRE静态链接库 再配合上C:\MSYS\1.0\pcre\目录下的"pcre.h",就可以在程序中加入正则表达式支持了:) (2) (于windows平台手动编译pcre,转载) 将 config.h.generic 重命名为 config.h 设置其中的 HAVE_BCOPY 参数为 0 (因为windows平台无bcopy()函数) 重命名 pcre.h.generic 为 pcre.h. 重命名 pcre_chartables.c.dist 为 pcre_chartables.c. 编译 dftables.c 成可执行文件,要加入参数 -DHAVE_CONFIG_H,以便导入 config.h 文件中的设置 /* 重命名 pcre_chartables.c.dist 为 pcre_chartables.c */ 运行编译的可执行文件 dftables.exe ,参数为 pcre_chartables.c 即 dftables.exe pcre_chartables.c 新建工程,包含下列文件,编译成lib文件即可 pcre_internal.h ucp.h ucpinternal.h ucptable.h pcre_chartables.c pcre_compile.c pcre_config.c pcre_dfa_exec.c pcre_exec.c pcre_fullinfo.c pcre_get.c pcre_globals.c pcre_info.c pcre_maketables.c pcre_newline.c pcre_ord2utf8.c pcre_refcount.c pcre_study.c pcre_tables.c pcre_try_flipped.c pcre_ucp_searchfuncs.c pcre_valid_utf8.c pcre_version.c pcre_xclass.c 这样就可以生成 libpcre.a 文件了 (vc,bcc生成的是pcre.lib,大同小异)2、使用生成的 libpcre.a (静态链接库) 在你的程序中添加: #define PCRE_STATIC // 开启静态链接库支持(一定要添加该行,否则无法使用静态链接库) #include "pcre.h" // PCRE头文件 并且添加 libpcre.a 到工程中,然后就可以在程序中使用PCRE函数了:) 编译选项 添加 /MT ,无头文件预编译.3、使用生成的 libpcre-0.dll 和 libpcre.dll.a (动态链接库)在你的程序中添加: #include "pcre.h" // PCRE头文件并且添加 libpcre.dll.a 到工程中,然后就可以在程序中使用PCRE函数了:) ================================================================================ 命令行下的批处理解决方法 .如果已经下载,可以不用第一行.goto START首先确保控制台环境中有:1、VC6命令行编译环境2、wget.exe、unzip.exe、sed.exe、mv.exe然后执行这个批处理文件,就可以得到VC版本的pcr.lib。:STARTwget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.zipunzip pcre-7.7.zipcd pcre-7.7sed -e "s/#define HAVE_BCOPY 1/#define HAVE_BCOPY 0/g" config.h.generic > config.hmv pcre.h.generic pcre.hmv pcre_chartables.c.dist pcre_chartables.ccl -MD -DHAVE_CONFIG_H dftables.cdftables.exe pcre_chartables.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_chartables.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_compile.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_config.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_dfa_exec.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_exec.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_fullinfo.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_get.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_globals.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_info.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_maketables.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_newline.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_ord2utf8.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_refcount.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_study.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_tables.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_try_flipped.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_ucp_searchfuncs.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_valid_utf8.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_version.ccl -O1 -MD -DHAVE_CONFIG_H -c pcre_xclass.clib -out:libpcr.lib pcre_chartables.obj pcre_compile.obj pcre_config.obj pcre_dfa_exec.obj pcre_exec.obj pcre_fullinfo.obj pcre_get.obj pcre_globals.obj pcre_info.obj pcre_maketables.obj pcre_newline.obj pcre_ord2utf8.obj pcre_refcount.obj pcre_study.obj pcre_tables.obj pcre_try_flipped.obj pcre_ucp_searchfuncs.obj pcre_valid_utf8.obj pcre_version.obj pcre_xclass.obj 这样就出来了: pcre.h + libpcr.lib==============================================================================最近使用VC编译了一下她的源代码,其实步骤很简单, 如下1 一些源文件改名config.h.generic 改名为 config.h (注意里面的配置)pcre.h.generic 改名为 pcre.hpcre_chartables.c.dist 改名为 pcre_chartables.c2 建立VC工程建立一个VC的DLL工程,去掉原有的包含文件将PCRE的所有pcre_*.c都加进去, pcre后面没有_的不要加, 后缀名是.cc的不要加可以参考上面的.还有.h 文件也是要的.3 修改工程设置增加工程预编译宏 HAVE_CONFIG_H不使用预编译头 Not Using Precompiled Headers编译选项 添加 /MTOK 完成以上三步,就可以在 VC 上编译通过了。4 编译结果使用时只需要编译出来的 .DLL .Lib 和 源代码目录的 pcre.h