日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

windows平台cl.exe编译pcre 8.13

發布時間:2025/6/17 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 windows平台cl.exe编译pcre 8.13 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在windows平臺開發的一個project需要使用正則表達式,當然自己實現一個regexp也是可以的,只是太蛋疼且技術不到家。所以我優先考慮了open source的library,pcre是比較有名的庫,在linux編譯都是普通的套路,不過在win下面就稍微麻煩一點了。

主要參考tombkeeper兄的《VC編譯pcre備忘》一文。具體步驟參考如下:

  • 下載最新的pcre:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.13.zip (zip/tar.gz/tar.bz2三種格式任選一種,windows的一般用zip),并解壓。
  • 重命名config.h.generic為config.h,這是generic配置文件,需要根據具體的環境對預編譯做相應修改。
    HAVE_BCOPY 1改為0,HAVE_INTTYPES_H 1改為0,HAVE_STDINT_H 1改為0。
    如果不修改,在下面編譯dftables的步驟中會報錯:

    ?

    pcre_internal.h(198) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory

  • 重命名pcre.h.generic為pcre.h,重命名pcre_chartables.c.dist為pcre_chartables.c
  • cl -MD -DHAVE_CONFIG_H dftables.c生成dftables.exe
  • dftables.exe pcre_chartables.c (修改了一些注釋,不知道目的何在)
  • cl -O1 -MD -DHAVE_CONFIG_H -c pcre_chartables.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_compile.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_config.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_dfa_exec.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_exec.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_fullinfo.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_get.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_globals.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_info.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_maketables.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_newline.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_ord2utf8.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_refcount.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_study.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_tables.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_try_flipped.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_ucd.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_valid_utf8.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_version.c cl -O1 -MD -DHAVE_CONFIG_H -c pcre_xclass.c lib -out:pcre.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_ucd.obj pcre_valid_utf8.obj pcre_version.obj pcre_xclass.obj 最后生成的pcre.lib就是我們所需要的pcre庫文件。
    【注意】,如果要編譯debug版本的pcre.lib,請用-MDd替代-MD,否則項目會出現“MSVCRTD.lib(cinitexe.obj) : warning LNK4098: 默認庫“msvcrt.lib”的問題。
  • 拷貝pcre.h和pcre.lib到我們自己項目的目錄,然后在源代碼頂部加入以下代碼:
    #include "pcre.h"
    #pragma comment(lib,"pcre.lib")
  • 用一下代碼測試:

    ?

    version= pcre_version(); wchar_t *shit = (wchar_t *)malloc(strlen(version)); MultiByteToWideChar(CP_ACP,0,version,-1,shit,wcslen(shit)); MessageBox(hWnd,shit,shit,MB_OK);

    ?

  • 轉載于:https://www.cnblogs.com/mtcnn/archive/2013/03/15/9410113.html

    總結

    以上是生活随笔為你收集整理的windows平台cl.exe编译pcre 8.13的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。