导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    muduo网络库在哪吒上编译

    MR Series
    1
    2
    1486
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • aldfaaa
      whycan矿工-小叶 LV 7 最后由 编辑

      看懂了陈硕大佬的muduo库, 才算从C++入门到现代C++(应该从C++11算起). 最喜欢大佬做库的同时顺便写本书, 踏踏实实收稿费, 谁说搞开源不赚钱?
      eacaeb0d-49e4-4c68-957c-0e220198f740-image.png

      库地址:
      https://github.com/chenshuo/muduo.git

      遇到的问题

      static const int kMaxNumericSize = 48;
      // 该行报错:kMaxNumericSize is large enough
      static_assert(kMaxNumericSize - 10 > std::numeric_limits<long double>::digi
                      "kMaxNumericSize is large enough");
      

      于是注释上面的问题.

      暴力过编译后文件修改差异:

      # git diff
      diff --git a/CMakeLists.txt b/CMakeLists.txt
      index 6071a4e..e151a00 100644
      --- a/CMakeLists.txt
      +++ b/CMakeLists.txt
      @@ -1,8 +1,13 @@
       cmake_minimum_required(VERSION 2.6)
      
      +set(CMAKE_CROSSCOMPILING TRUE)
      +set(CMAKE_C_COMPILER "riscv64-unknown-linux-gnu-gcc")
      +set(CMAKE_CXX_COMPILER "riscv64-unknown-linux-gnu-g++")
      +set(CMAKE_FIND_ROOT_PATH /home/tao/tina-d1-open/out/d1-nezha/staging_dir/toolchain)
      +
       project(muduo C CXX)
      
      -enable_testing()
      +#enable_testing()
      
       if(NOT CMAKE_BUILD_TYPE)
         set(CMAKE_BUILD_TYPE "Release")
      @@ -20,7 +25,7 @@ set(CXX_FLAGS
        -D_FILE_OFFSET_BITS=64
        -Wall
        -Wextra
      - -Werror
      + # -Werror
        -Wconversion
        -Wno-unused-parameter
        -Wold-style-cast
      @@ -28,7 +33,7 @@ set(CXX_FLAGS
        -Wpointer-arith
        -Wshadow
        -Wwrite-strings
      - -march=native
      + # -march=native
        # -MMD
        -std=c++11
        -rdynamic
      diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
      index bed84ad..1f3f021 100644
      --- a/examples/CMakeLists.txt
      +++ b/examples/CMakeLists.txt
      @@ -34,7 +34,7 @@ else()
         add_subdirectory(curl EXCLUDE_FROM_ALL)
       endif()
      
      -if(PROTOBUF_FOUND)
      +if(FALSE)
         add_subdirectory(ace/logging)
         add_subdirectory(protobuf)
       else()
      diff --git a/muduo/base/CMakeLists.txt b/muduo/base/CMakeLists.txt
      index 96e2d02..7ff4597 100644
      --- a/muduo/base/CMakeLists.txt
      +++ b/muduo/base/CMakeLists.txt
      @@ -30,5 +30,5 @@ file(GLOB HEADERS "*.h")
       install(FILES ${HEADERS} DESTINATION include/muduo/base)
      
       if(MUDUO_BUILD_EXAMPLES)
      -  add_subdirectory(tests)
      +    #  add_subdirectory(tests)
       endif()
      diff --git a/muduo/base/LogStream.cc b/muduo/base/LogStream.cc
      index cafd5b8..518e742 100644
      --- a/muduo/base/LogStream.cc
      +++ b/muduo/base/LogStream.cc
      @@ -223,14 +223,14 @@ void FixedBuffer<SIZE>::cookieEnd()
      
       void LogStream::staticCheck()
       {
      -  static_assert(kMaxNumericSize - 10 > std::numeric_limits<double>::digits10,
      -                "kMaxNumericSize is large enough");
      -  static_assert(kMaxNumericSize - 10 > std::numeric_limits<long double>::digits10,
      -                "kMaxNumericSize is large enough");
      -  static_assert(kMaxNumericSize - 10 > std::numeric_limits<long>::digits10,
      -                "kMaxNumericSize is large enough");
      -  static_assert(kMaxNumericSize - 10 > std::numeric_limits<long long>::digits10,
      -                "kMaxNumericSize is large enough");
      +  //static_assert(kMaxNumericSize - 10 > std::numeric_limits<double>::digits10,
      +  //              "kMaxNumericSize is large enough");
      +  //static_assert(kMaxNumericSize - 10 > std::numeric_limits<long double>::digits10,
      +  //              "kMaxNumericSize is large enough");
      +  //static_assert(kMaxNumericSize - 10 > std::numeric_limits<long>::digits10,
      +  //              "kMaxNumericSize is large enough");
      +  //static_assert(kMaxNumericSize - 10 > std::numeric_limits<long long>::digits10,
      +  //              "kMaxNumericSize is large enough");
       }
      
       template<typename T>
      diff --git a/muduo/net/CMakeLists.txt b/muduo/net/CMakeLists.txt
      index 7510d87..28cfffe 100644
      --- a/muduo/net/CMakeLists.txt
      +++ b/muduo/net/CMakeLists.txt
      @@ -60,10 +60,10 @@ if(MUDUO_BUILD_EXAMPLES)
         add_subdirectory(tests)
       endif()
      
      -if(PROTOBUF_FOUND)
      -  add_subdirectory(protobuf)
      -  add_subdirectory(protorpc)
      +if(FALSE)
      +    add_subdirectory(protobuf)
      +    add_subdirectory(protorpc)
       else()
      -  add_subdirectory(protobuf EXCLUDE_FROM_ALL)
      -  add_subdirectory(protorpc EXCLUDE_FROM_ALL)
      +    add_subdirectory(protobuf EXCLUDE_FROM_ALL)
      +    add_subdirectory(protorpc EXCLUDE_FROM_ALL)
       endif()
      

      过编~RPC走起, TCP应用走起

      1 条回复 最后回复 回复 引用 分享 0
      • aldfaaa
        whycan矿工-小叶 LV 7 最后由 编辑

        muduo库依赖几个BOOST头文件, 单纯就是头文件而已.
        下载boost_1.75.0无需编译即可.

        1 条回复 最后回复 回复 引用 分享 0
        • 1 / 1
        • First post
          Last post

        Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

        行为准则 | 用户协议 | 隐私权政策