引用Boost库 CMakeList的写法

本文详细描述了如何在ARM环境下,通过CMakeLists.txt配置文件引用Boost库并设置C++标准,包括设置库路径、链接Boost库和初始化日志功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用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(example
    main.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";
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二分掌柜的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值