引用Boost库 CMakeList的写法
引用Boost库 CMakeList的写法
flyfish
环境arm
cmake_minimum_required(VERSION 3.5)project(example LANGUAGES CXX)set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)set(BOOST_PREFIX /media/Boost/build/out/arm64-v8a/)
set(BOOST_INCLUDE_DIR "${BOOST_PREFIX}/include/boost-1_82/")
set(BOOST_LIB_DIR "${BOOST_PREFIX}/lib/")set(BOOST_LIBS"${BOOST_LIB_DIR}/libboost_filesystem-clang-mt-a64-1_82.a""${BOOST_LIB_DIR}/libboost_thread-clang-mt-a64-1_82.a""${BOOST_LIB_DIR}/libboost_timer-clang-mt-a64-1_82.a""${BOOST_LIB_DIR}/libboost_log-clang-mt-a64-1_82.a""${BOOST_LIB_DIR}/libboost_log_setup-clang-mt-a64-1_82.a""${BOOST_LIB_DIR}/libboost_date_time-clang-mt-a64-1_82.a")include_directories(${BOOST_INCLUDE_DIR}
)add_executable(examplemain.cpp)
target_link_libraries(example "${BOOST_LIBS}" -static-libstdc++ -lm -ldl -frtti -fexceptions)
测试
#include <iostream>
#include <fstream>
#include <iomanip>
#include <boost/property_tree/ini_parser.hpp>#include <boost/thread.hpp>
#include <boost/asio.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/noncopyable.hpp>#include <boost/smart_ptr/shared_ptr.hpp>
#include <boost/smart_ptr/make_shared_object.hpp>
#include <boost/log/core.hpp>
#include <boost/log/sinks/sync_frontend.hpp>
#include <boost/log/sinks/text_ostream_backend.hpp>
#include <boost/filesystem.hpp>
#include <boost/date_time/posix_time/posix_time_types.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/sources/severity_logger.hpp>
#include <boost/log/sources/record_ostream.hpp>
#include <boost/log/utility/setup/file.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/support/date_time.hpp>
#include <boost/property_tree/ini_parser.hpp>namespace logging = boost::log;
namespace src = boost::log::sources;
namespace expr = boost::log::expressions;
namespace keywords = boost::log::keywords;
namespace sinks = boost::log::sinks;
using namespace boost::property_tree;
using namespace boost::filesystem;
//using namespace boost::asio;
// 如果都用error则 boost::log::trivial::error 和 boost::asio::error 有歧义。所以asio会使用命名空间
void init_log()
{logging::add_file_log(keywords::file_name = "sample_%N.log",keywords::rotation_size = 10 * 1024 * 1024,keywords::time_based_rotation = sinks::file::rotation_at_time_point(0, 0, 0),keywords::auto_flush = true,//keywords::format = "[%TimeStamp%]: %Message%"keywords::format =(expr::stream<< expr::format_date_time< boost::posix_time::ptime >("TimeStamp", "%Y-%m-%d %H:%M:%S")<< ": <" << logging::trivial::severity<< "> " << expr::smessage));
}
int main(int argc, char **argv)
{init_log();logging::add_common_attributes();using namespace logging::trivial;src::severity_logger< severity_level > lg;BOOST_LOG_SEV(lg, trace) << "A trace severity message";BOOST_LOG_SEV(lg, debug) << "A debug severity message";BOOST_LOG_SEV(lg, info) << "An informational severity message";BOOST_LOG_SEV(lg, warning) << "A warning severity message";BOOST_LOG_SEV(lg, boost::log::trivial::error) << "An error severity message";BOOST_LOG_SEV(lg, fatal) << "A fatal severity message";
}