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動態連結庫所用的LIBlibpcre.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.hucp.h ucpinternal.hucptable.hpcre_chartables.cpcre_compile.cpcre_config.cpcre_dfa_exec.cpcre_exec.cpcre_fullinfo.cpcre_get.cpcre_globals.cpcre_info.cpcre_maketables.cpcre_newline.cpcre_ord2utf8.cpcre_refcount.cpcre_study.cpcre_tables.cpcre_try_flipped.cpcre_ucp_searchfuncs.cpcre_valid_utf8.cpcre_version.cpcre_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
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動態連結庫所用的LIBlibpcre.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.hucp.h ucpinternal.hucptable.hpcre_chartables.cpcre_compile.cpcre_config.cpcre_dfa_exec.cpcre_exec.cpcre_fullinfo.cpcre_get.cpcre_globals.cpcre_info.cpcre_maketables.cpcre_newline.cpcre_ord2utf8.cpcre_refcount.cpcre_study.cpcre_tables.cpcre_try_flipped.cpcre_ucp_searchfuncs.cpcre_valid_utf8.cpcre_version.cpcre_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