我正在尝试在vxWorks gcc平台上编译regex_search函数。我正在用一个例子进行测试,看看我是否可以毫无问题地使用它。该示例文件包含以下三个标头。
#include <string>
#include <map>
#include <boost/regex.hpp>
我得到的错误如下
include/c++/3.4.4/cwchar:73: error: `::mbstate_t' has not been declared
include/c++/3.4.4/cwchar:114: error: `::btowc' has not been declared
.........
.........(similar "not defined" errors)
c++/3.4.4/cwctype:20: error: `::wctrans_t' has not been declared
c++/3.4.4/cwctype:20: error: `::wctype_t' has not been declared
.........
.........(similar "not defined" errors)
我想知道 cwchar 和 cwtype 标头的作用。当我打开它们并查看时,它们包含大量预处理器#ifdefs,它们似乎正在检查编译器特定信息。
我的主管要求我将其关闭。我该怎么办?
如果您的主管希望您关闭 CW 支持,您可以尝试在项目设置中定义 BOOST_NO_CWCHAR 和 BOOST_NO_CWCTYPE。
参见 http://www.boost.org/doc/libs/1_37_0/libs/config/doc/html/boost_config/boost_macro_reference.html