windows平台手动编译pcre
2013-01-16 10:59
399 查看
将 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。
:START
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.zip
unzip pcre-7.7.zip
cd pcre-7.7
sed -e "s/#define HAVE_BCOPY 1/#define HAVE_BCOPY 0/g" config.h.generic > config.h
mv pcre.h.generic pcre.h
mv pcre_chartables.c.dist pcre_chartables.c
cl -MD -DHAVE_CONFIG_H dftables.c
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_ucp_searchfuncs.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: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.h
pcre_chartables.c.dist 改名为 pcre_chartables.c
2 建立VC工程
建立一个VC的DLL工程,去掉原有的包含文件
将PCRE的所有pcre_*.c都加进去, pcre后面没有_的不要加, 后缀名是.cc的不要加
可以参考上面的.还有.h 文件也是要的.
3 修改工程设置
增加工程预编译宏 HAVE_CONFIG_H
不使用预编译头 Not Using Precompiled Headers
编译选项 添加 /MT
OK 完成以上三步,就可以在 VC 上编译通过了。
4 编译结果
使用时只需要编译出来的 .DLL .Lib 和 源代码目录的 pcre.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。
:START
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.zip
unzip pcre-7.7.zip
cd pcre-7.7
sed -e "s/#define HAVE_BCOPY 1/#define HAVE_BCOPY 0/g" config.h.generic > config.h
mv pcre.h.generic pcre.h
mv pcre_chartables.c.dist pcre_chartables.c
cl -MD -DHAVE_CONFIG_H dftables.c
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_ucp_searchfuncs.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: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.h
pcre_chartables.c.dist 改名为 pcre_chartables.c
2 建立VC工程
建立一个VC的DLL工程,去掉原有的包含文件
将PCRE的所有pcre_*.c都加进去, pcre后面没有_的不要加, 后缀名是.cc的不要加
可以参考上面的.还有.h 文件也是要的.
3 修改工程设置
增加工程预编译宏 HAVE_CONFIG_H
不使用预编译头 Not Using Precompiled Headers
编译选项 添加 /MT
OK 完成以上三步,就可以在 VC 上编译通过了。
4 编译结果
使用时只需要编译出来的 .DLL .Lib 和 源代码目录的 pcre.h
相关文章推荐
- windows平台cl.exe编译pcre 8.13
- windows平台编译pcre
- windows平台下vlc编译之十:vlc-1.0.0的编译
- Windows平台使用VS2013编译VLC源码
- OpenCV4Android开发之旅(三)----Windows平台Eclipse、MinGW配置OpenCV2.4.4(C++接口调用) 全过程(附:MinGW编译OpenCV2.4.4)
- FFMPEG WINDOWS平台编译
- 在windows平台编译FFMPEG的静态链接库
- windows平台下安装、编译、使用mongodb C++ driver 正常运行
- windows平台python 2.7环境编译安装zbar
- webrtc百度网盘下载与windows平台编译错误解决
- WebKit 在 Windows 平台下编译小结
- windows平台下使用LiteIDE交叉编译golang
- FFMPEG在Windows平台编译的傻瓜教程
- windows平台下vlc编译之六:vlc-0.9.8a的编译
- OpenCV在Windows平台下的源代码编译
- FFmpeg windows平台编译
- caffe在windows平台上的编译
- windows平台下编译curl支持https(good)
- websocket 库 "boost.beast" windows 平台 VS2015 编译过程记录
- [原创]开源opensc工程windows平台下编译