boost 使用log日誌庫編譯相關問題

2021-08-19 19:22:19 字數 2674 閱讀 2483

boost 日誌示例中有乙個錯誤:

下面這個檔案:

應該在開頭加一行:

#include

否則會出下列錯錯誤:

error c2027: 使用了未定義型別「boost::log::v2s_mt_nt5::expressions::aux::date_time_formatter_generator_traits」

d:\library\boost_1_54_0\boost\log\expressions\formatters\date_time.hpp

94 testlog

error c3861: 「parse」: 找不到識別符號

d:\library\boost_1_54_0\boost\log\expressions\formatters\date_time.hpp

94 testlog

原因是:

keywords::format = (

expr::stream

<< expr::format_date_time< boost::posix_time::ptime >("timestamp", "%y-%m-%d %h:%m:%s.%f")

<< ": <" << logging::trivial::severity

<< "> " << expr::smessage )

編譯時應注意:

使用動態庫鏈結 時應注意:

要定義 

boost_log_dyn_link  或者 boost_all_dyn_link

使用到的庫:boost-log   boost-log-setup

參考:使用靜態庫鏈結 時應注意:

libboost_log_setup.a libboost_log.a 這個順序.

如果你出現下面的情況則說明 你的依賴庫順序錯了. 正確的順序是 libboost_log_setup.a 應該在 libboost_log.a 之前.

參考:/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64/libboost_log_setup.a(formatter_parser.o): in function `boost::log::v2s_mt_posix::(anonymous namespace)::formatter_grammar::formatter_grammar()':

formatter_parser.cpp:(.text+0x6015): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific::graph'

formatter_parser.cpp:(.text+0x6541): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific::alnum'

formatter_parser.cpp:(.text+0x6548): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific::space'

formatter_parser.cpp:(.text+0x65c2): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific::alpha'

formatter_parser.cpp:(.text+0x683c): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific::print'

/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64/libboost_log_setup.a(formatter_parser.o): in function `boost::log::v2s_mt_posix::(anonymous namespace)::formatter_grammar::formatter_grammar()':

formatter_parser.cpp:(.text+0x7efa): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific::graph'

formatter_parser.cpp:(.text+0x8307): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific::alnum'

formatter_parser.cpp:(.text+0x830e): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific::space'

formatter_parser.cpp:(.text+0x8388): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific::alpha'

formatter_parser.cpp:(.text+0x85f4): undefined reference to `boost::log::v2s_mt_posix::aux::encoding_specific::print'

Qt編譯和使用boost庫

安裝過qt的都已經預設安裝過mingw的環境了,只需要找到配置一下環境變數就行 我的在d qt5.5.1 tools mingw492 32 bin 然後將該路徑新增到系統環境變數中 開啟cmd,輸入一下的內容 gcc v如果顯示了gcc的版本資訊,那麼mingw新增成功,下面就可以在cmd中訪問了...

boost編譯使用

2.我放在d cpp目錄下 解壓到當前資料夾 3.開啟vs2010 vs tools vs命令提示 4.cd d cpp boost 1 46 1 5.輸入bootstrap,便生成bjam.exe檔案 6 bjam toolset msvc 10.0 build type complete 完全編...

boost庫交叉編譯

1.環境 linux系統 ubuntu 14.04 編譯工具 arm fsl linux gnueabi gcc 3.編譯 1 解壓,cd 到目錄 show libraries可檢視所有庫,如下 使用 without libraries 逗號隔開去掉不想編譯的庫,prefix 指定編譯後的安裝路徑 ...