CMake编译pcrecpp静态库

  1. 下载并安装CMake(2.8.6),解压pcre(最新版本8.21)。

  2. 打开CMake GUI,指定”where is the source code:”到D:/dev/pcre-8.21,指定”where to build the binaries:”到D:/dev/pcre-8.21/out,点Configure,然后有很多配置,如果需要支持Unicode,勾选 PCRE_SUPPORT_UNICODE_PROPERTIESPCRE_SUPPORT_UTF8 ,支持Unicode就不能同时勾选PCRE_EBCDIC,然后点Generate

  3. 进入D:\dev\pcre-8.21\out打开PCRE.sln。如果你的project定义了/D “UNICODE”,那么pcrecpp项目也需要这样定义。两者的运行时库也要保持一致(比如都是/MDd)。右击项目,生成。

  4. 在项目中引用生成的pcrecppd.lib和pcred.lib(这个也是需要的,否则链接报错),并加上头文件。

    include <pcrecpp.h>
    pragma comment(lib,"pcred.lib")
    pragma comment(lib,"pcrecppd.lib")
    
  5. 在项目“于处理器定义”中加上PCRE_STATIC

  6. Over.

“CMake编译pcrecpp静态库”的5个回复

  1. 你好,你写的很不错呢。
    这里有个问题向你请教下,我按照你的步骤做了,但是我的out结果里面没有pcreapp.h文件,倒是有pcreapparg.h文件,不知道为什么?我尝试了8.21、8.30、8.31和8.32,结果都一样呢,同时配置选择了对PCRE_BUILD_PCRECPP、PCRE_BUILD_PCREGREP。
    谢谢

    1. 我不是很明白你的意思。out目录下确实没有生成pcrecpp.h,但是这不影响最后生成vc项目文件和vc编译的。如果缺头文件pcrecpp.h。你可以到out目录的上一级目录拷贝一个过来的。xD。

  2. 你好,按照你的方法在vc6.0下出现LINK : fatal error LNK1104: cannot open file “C:\pcre\out\Debug\pcrecppd.lib”,试了8.32版本的pcre也一样的结果,是看到有生成pcred.lib,但在程序中用不了,这是为什么,请教你一下

      1. 不存在“C:\pcre\out\Debug\pcrecppd.lib”,很奇怪,看它提示编译成功,在debug下确找不到。

发表评论

电子邮件地址不会被公开。 必填项已用*标注