boost
lainegates
think more, code less.
展开
-
boost filesystem 处理中文路径
参考网页1网页2处理办法:#include <codecvt>std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> cvt_utf;std::string str;std::wstring wstr;wstr = cvt_utf.from_bytes(str); // utf8 -> utf16str = cvt_utf.to_bytes(wstr); // utf16 -> utf8原创 2021-04-15 22:42:18 · 1809 阅读 · 0 评论 -
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.54.0:-1: error: error adding symbols: DSO missing fro
boost.filesystem处理目录确实方便,于是本人使用cmake来加载的boost,但使用filesystem出现这一bug。上网google,别人说要加上"-lboost_system",但我添加上仍然不好使用。最后,抱着试试的心态使用了target_link_libraries(ABC boost_system boost_filesystem)结果成功,特此记录。原创 2015-11-30 13:36:57 · 9906 阅读 · 1 评论 -
boost.log教程:设计介绍
boost的设计图如下:这个图流程比较清晰,但数据细节上不够,我重新画了一个Boost.log设计与log4j相似:用Logger输入数据,输入的数据配合设置的属性即为log recordLog record经过过滤和format到达最终的sink,输出到console/文件等位置Logger和sink不绑定,数据输入后完全根据规则经logging core分配到对应的sink...原创 2019-05-13 12:37:42 · 753 阅读 · 0 评论 -
boost.log教程:formatting
常用formatting默认不设置formatter,所有添加的attribut都不会在log record中出现添加时间戳的formatingvoid init(){ logging::add_file_log // 等价于设置了file_sink,也可以手工分别建frontend_sink和backen_sink ( keywords::file_na...原创 2019-05-13 11:33:35 · 1528 阅读 · 0 评论 -
boost.log教程:filter
filterfileter添加条件BOOST_LOG_ATTRIBUTE_KEYWORD(line_id, "LineID", unsigned int)BOOST_LOG_ATTRIBUTE_KEYWORD(severity, "Severity", severity_level)BOOST_LOG_ATTRIBUTE_KEYWORD(tag_attr, "Tag", std::stri...原创 2019-05-13 11:26:14 · 603 阅读 · 0 评论 -
boost.log教程:core facilities
Logging recordslogging record中的所有信息,包括message text,都会被filters, formatters 和 sinks处理。logging record特性:不能复制,只能被移动boost::move()。它由logging core在filter之后创建,此时内容为空,随后attribute value会由attribute生成并添加到log ...原创 2019-05-13 11:23:44 · 479 阅读 · 0 评论 -
boost.log 教程:sink
直接使用trivial logging 很多时候无法满足需求,比如有时想定义些特定的标签,写到特定的文件,这时就要用到sink。sink应该只在应用程序的开始设置如果没有设定sink,系统会生成默认的,是输出到console,但如果用户自己指定了,那么默认的sink不再生效使用file sink简单示例:void init(){ logging::add_file_lo...原创 2019-05-12 15:42:27 · 2405 阅读 · 3 评论 -
boost.log教程:loggers
logger是用户接触最多的类可分为无保护和线程安全两类,线程安全的以_mt结尾logger有窄字符和宽字符的,宽字符的以w开头,如wlogger_mtlogger类可复制,可创建的,可作为自定义类的成员boost.log提供多种logger,参见网页直接使用如下即可:#include <boost/log/trivial.hpp>int main(int, ch...原创 2019-05-12 10:36:05 · 2429 阅读 · 0 评论 -
Boost.log 教程:attribute
attribute说明:attribute是函数,attribute_value是attribute产生的值,如TimeStamp可用于之后的filtering和formatting分global、thread-specified和logger-specified 3类,第一类最常用所有已有值都在attrs::xxx可使用logging::add_common_attributes(...原创 2019-05-11 23:41:18 · 1229 阅读 · 0 评论 -
boost.log遇到问题及解决办法
尝试将 Boost.log v2 集成到代码里,在win10+vs2017. 编译 x64版本。c2672问题测试代码如下:#include <boost/thread/mutex.hpp>#include <boost/core/null_deleter.hpp>#include <boost/log/common.hpp>#include <...原创 2019-05-14 22:28:30 · 1161 阅读 · 0 评论 -
boost LNK2005 重定义错误
开发的库使用了boost库,然后出现如下错误:libboost_system-vc141-mt-gd-x64-1_68.lib(error_code.obj) : error LNK2005: "class boost::system::error_category const & __cdecl boost::system::detail::generic_category_ncx(v...原创 2019-05-14 16:19:34 · 1916 阅读 · 0 评论 -
vs2017 编译 动态 x64 boost
下载Boost我下载了最新的1.70版本解压到英文目录${path},最好路径中也没有空格生成编译项目从“开始菜单”中,找到适用于vs2017 的x64本机命令工具进入到````${path}```执行bootstrap.bat配置编译参数打开project-config.jam文件,设定vs2017的toolset,其中的cl.exe目录应该是固定的。注意vs2015的V...原创 2019-05-14 14:18:37 · 747 阅读 · 0 评论 -
boost 智能指针
最近使用boost的智能指针,查看了一些帖子。总结如下:智能指针分类:转载 2014-09-05 17:02:36 · 1122 阅读 · 0 评论 -
boost.test 使用
我使用的cmake来组织工程。以下为使用的查找boost的cmake脚本。原创 2014-09-09 10:42:26 · 4230 阅读 · 0 评论 -
编译boost 库
windows下使用boost.python,使用官方的安装包在线安装,下载的官网是http://www.boostpro.com/download/。所得的boost.python的包默认使用的是python2.7。而我做的项目中使用的是python2.6 , 没有办法,只得卸载了本机的python2.7 , 安装上 python 2.6 ,重新编译boost,终于可正常使用了。下面是我找到原创 2012-10-27 15:03:47 · 1811 阅读 · 0 评论