如何在Open C/C++应用中使用Boost.Regex
来源:互联网 发布:时代互联 域名转出 编辑:程序博客网 时间:2024/05/02 04:33
尽管新版的Open C/C++ SDK的发布支持了stlport, boost等库,但boost的支持尚不完整。前些时曾初步测试Regex库,编译时提示系统头文件中有许多错误。近日得空终于使得这个测试例子能运行了。下面描述具体过程:
我的测试环境是: SDK: S60 3rd MR Ed + Open C/C++ SDK; IDE: Carbide.c++ 1.3
0、准备工作
安装OpenC/C++ SDK,这里就不赘述了。然后以该SDK附带的boost例子为基础创建一个regex_ex例子项目。Regex例子可以在网上找一个,比如这里的:
http://www.cs.brown.edu/~jwicks/boost/libs/regex/doc/examples.html
http://www.onlamp.com/lpt/a/6535
1、自定义boost的选项:
打开boost/config/user.hpp文件,定义下面两个宏: (原来就有,把注释符号去掉就行了)
#define BOOST_DISABLE_WIN32
#define BOOST_ALL_NO_LIB
2、修改MIN_WCHAR的定义
打开wchar.h文件,将
#define WCHAR_MIN (wchar_t)__INT_MIN
改为
#define WCHAR_MIN __INT_MIN
即,去掉wchar_t强制转换。否则这个在宏判断时导致莫名其妙的问题。
可保留 WCHAR_MAX的定义不变,没有用到。
3、修正Boost.Regex库中的一个问题:
打开boost/regex/v4/basic_regex_parser.hpp,修改
- std::ptrdiff_t len = (std::min)(static_cast<std::ptrdiff_t>(2), m_end - m_position);
为
- std::ptrdiff_t len = (std::min)(static_cast<std::ptrdiff_t>(2), static_cast<std::ptrdiff_t>(m_end - m_position));
4、编译与链接regex的源代码
不知Open C/C++ SDK是否有Boost.Regex库的lib文件,我采用的是直接从Regex源代码编译(下载Boost1.35)。
最后,Boost.Regex测试例子在Emulator与真机上均顺利通过。
- 如何在Open C/C++应用中使用Boost.Regex
- 【C/C++】boost regex正则表达式的安装及使用
- boost中regex的使用
- 在VS2008中使用正则表达式库 Boost.Regex
- 如何在Visual Studio 2010中使用C++“准”标准库 Boost 1.49.0
- 如何在Visual Studio 2010中使用C++“准”标准库 Boost 1.49.0
- C++中三种正则表达式比较(C regex,C ++regex,boost regex)
- C++中三种正则表达式比较(C regex,C ++regex,boost regex)
- C++中三种正则表达式比较(C regex,C ++regex,boost regex)
- C++中三种正则表达式比较(C regex,C ++regex,boost regex)
- C++中三种正则表达式比较(C regex,C ++regex,boost regex)
- C++中三种正则表达式比较(C regex,C ++regex,boost regex)
- C++中三种正则表达式比较(C regex,C ++regex,boost regex)
- 在C中使用正则表达式<regex.h>--win32下载后也可用
- 在C中使用正则表达式<regex.h>--win32下载后也可用
- 关于boost.regex库的编译问题(C/C++)
- c/c++ regex正则使用
- Ubuntu编译安装boost并在eclipse C/C++中使用/Boost安装和卸载
- Data Mining for Web Intelligence
- 一个很好用的调试辅助类,使用需要一定C++基础
- CStdioFile类打开文件,用TextOut输出时乱码……
- Spring运行中关于bean.xml文件放置的错误解决
- 游戏窗口化
- 如何在Open C/C++应用中使用Boost.Regex
- Visual C++开发工具的一些使用技巧
- Ext的基本概念及一个实例
- 写给红梅
- c#快捷键
- amd64上碰到的小问题_动态连接库
- 把非归档模式的Oracle数据改成归档模式
- 单向链表当中的环路判别问题
- oracle归档日志管理