当前位置: 首页 > news >正文

Arm64版本的centos编译muduo库遇到的问题的归纳

环境:Mac m2 pro下的VMware虚拟机中Arm64 centos

./build.sh 执行后提示如下

+ cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=…/release-install-cpp11 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON /root/package/muduo-master

– Boost version: 1.69.0

Could NOT find Protobuf (missing: Protobuf_INCLUDE_DIR)

– Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)

– found zlib

– CXX_FLAGS = -g -DCHECK_PTHREAD_RETURN_VALUE -D_FILE_OFFSET_BITS=64 -Wall -Wextra -Werror -Wconversion -Wno-unused-parameter -Wold-style-cast -Woverloaded-virtual -Wpointer-arith -Wshadow -Wwrite-strings -march=native -std=c++11 -rdynamic -O2 -DNDEBUG

– Configuring done

– Generating done

– Build files have been written to: /root/package/build/release-cpp11

+ make

[ 2%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/AsyncLogging.cc.o

/root/package/muduo-master/muduo/base/AsyncLogging.cc:1:0: 错误:unknown value

‘native’ for -march

// Use of this source code is governed by a BSD-style license

^

make[2]: *** [muduo/base/CMakeFiles/muduo_base.dir/AsyncLogging.cc.o] 错误 1

make[1]: *** [muduo/base/CMakeFiles/muduo_base.dir/all] 错误 2

make: *** [all] 错误 2

编译提示找不到ProtobufCURL 库,那么就安装一下

sudo yum install protobuf protobuf-devel protobuf-compiler
sudo yum install libcurl-devel

第二处提示 unknown value ‘native’ for -march

注释掉 CMakeList.txt 中的 -march=native

在这里插入图片描述

随后编译又提示如下错误

/root/package/muduo-master/muduo/base/LogStream.cc: 在成员函数‘void

muduo::LogStream::staticCheck()’中:

/root/package/muduo-master/muduo/base/LogStream.cc:228:3: 错误:static assertion failed: kMaxNumericSize is large enough

static_assert(kMaxNumericSize - 10 > std::numeric_limits::digits10,

^

make[2]: *** [muduo/base/CMakeFiles/muduo_base.dir/LogStream.cc.o] 错误 1

make[1]: *** [muduo/base/CMakeFiles/muduo_base.dir/all] 错误 2

make: *** [all] 错误 2

这是断言错误,因为Arm架构下的centos 有 128bit 的 long double 类型

解决方法是将 package/muduo-master/muduo/base/LogStream.h 下的 kMaxNumericSize 设置为 std::numeric_limits<long double>::digits10 + 11, 我这里检查出 std::numeric_limits<long double>::digits10为33, 则将其修改为44

在这里插入图片描述

还有有可能出现如下的编译错误

deprecated: Please use ByteSizeLong() instead

在muduo库的CMakeList中添加编译选项

-Wno-deprecated-declarations

在这里插入图片描述

最后终于编译成功了

在这里插入图片描述

相关文章:

Arm64版本的centos编译muduo库遇到的问题的归纳

环境&#xff1a;Mac m2 pro下的VMware虚拟机中Arm64 centos ./build.sh 执行后提示如下 cmake -DCMAKE_BUILD_TYPErelease -DCMAKE_INSTALL_PREFIX…/release-install-cpp11 -DCMAKE_EXPORT_COMPILE_COMMANDSON /root/package/muduo-master – Boost version: 1.69.0 – Co…...

leetcode:495. 提莫攻击

一、题目 链接&#xff1a;495. 提莫攻击 - 力扣&#xff08;LeetCode&#xff09; 函数原型&#xff1a;int findPoisonedDuration(int* timeSeries, int timeSeriesSize, int duration) 二、思路 遍历数组timeSeries&#xff0c;如果 元素值duration < 下一元素值 &#x…...

《微信小程序从入门到精通》---笔记1

小程序&#xff0c;我又来学习啦&#xff01;请多关照~ 项目驱动 小程序开发建议使用flex布局在小程序中&#xff0c;页面渲染和业务逻辑是分开的&#xff0c;分别运行在不同的线程中。Mini Program于2017年1月7号正式上线小程序的有点&#xff1a;跨平台、开发门槛低、开发周…...

Python---函数定义时缺省参数(参数默认值)---放最右边

缺省参数也叫默认参数&#xff0c;用于定义函数&#xff0c;为参数提供默认值&#xff0c;调用函数时 可 不传该默认参数的值&#xff08;注意&#xff1a;所有位置参数必须出现在默认参数前&#xff0c;包括函数定义和调用&#xff09;。 比如&#xff1a;原先的代码&#…...

深度学习之自监督模型汇总

1.BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding paper:https://arxiv.org/pdf/1810.04805v2.pdf code:GitHub - google-research/bert: TensorFlow code and pre-trained models for BERT Abstract&#xff1a;我们引入了一种名为 BE…...

竞赛 : 题目:基于深度学习的水果识别 设计 开题 技术

1 前言 Hi&#xff0c;大家好&#xff0c;这里是丹成学长&#xff0c;今天做一个 基于深度学习的水果识别demo 这是一个较为新颖的竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/pos…...

oracle的debjob挂載及查詢

背景 有一個需求需要定時去執行一個produce&#xff0c;可以使用oracle的dbjob定時執行&#xff0c;相比較之前的vbs更加絲滑 --傳遞produce 開始的時間 頻率 declarea number;beginDBMS_JOB.SUBMIT(a,xx_warehouse_daliy_record_p;,to_date(202311230800,yyyymmddhh24mi),…...

Pycharm创建项目新环境,安装Pytorch

在python项目中&#xff0c;很多项目使用的各类包的版本是不一致的。所以我们可以对每个项目有专属于它的环境。所以这个文章就是教你如何创建新环境。 一、创建新环境 首先我们需要去官网下载conda。然后在Pycharm下面添加conda的可执行文件。 用conda创建新环境。 二、…...

assert断言

1.引入 assert.h 头⽂件定义了宏 assert() &#xff0c;⽤于在运⾏时确保程序符合指定条件&#xff0c;如果不符合&#xff0c;就报错终⽌运⾏。这个宏常常被称为“断⾔”。 2.应用 assert(p ! NULL); 上⾯代码在程序运⾏到这⼀⾏语句时&#xff0c;验证变量 p 是否等于 …...

我们对凌鲨的一次重构

在10月我们对凌鲨进行了一次重构&#xff0c;把所有鸡肋的功能都删除了。 新版本界面 老版本界面 我们干掉的功能 移除沟通频道功能 沟通频道类似slack功能&#xff0c;用于团队沟通。由于国内有大量的沟通软件&#xff0c;比如企业微信&#xff0c;飞书&#xff0c;钉钉等。…...

【JVM】一篇通关JVM垃圾回收

目录 1. 如何判断对象可以回收1-1. 引用计数法1-2. 可达性分析算法1-3. 四种引用强引用软引用弱引用虚引用终结器引用 2. 垃圾回收算法2-1. 标记清除2-2. 标记整理2-3. 复制2-4. 总结 3. 分代垃圾回收4. 垃圾回收器5. 垃圾回收调优 1. 如何判断对象可以回收 1-1. 引用计数法 …...

【小沐学写作】原型设计工具汇总(Axure RP)

文章目录 1、简介2、Axure RP2.1 工具简介2.2 工具特点2.2.1 互动事件2.2.2 条件逻辑2.2.4 工作表格2.2.5 多状态容器2.2.6 数据驱动接口2.2.7 自适应视图2.2.8 流程图 2.3 工具安装2.3.1 安装2.3.2 运行 2.4 使用费用2.5 工具体验2.5.1 登陆框制作 3、其他3.1 Figma3.2 Adobe …...

WebSocket 鉴权策略与技巧详解

WebSocket 作为实时通信的利器&#xff0c;越来越受到开发者的青睐。然而&#xff0c;为了确保通信的安全性和合法性&#xff0c;鉴权成为不可或缺的一环。本文将深入探讨 WebSocket 的鉴权机制&#xff0c;为你呈现一揽子的解决方案&#xff0c;确保你的 WebSocket 通信得心应…...

2022 年十大 JavaScript 框架

2022 年十大 Web 应用开发 JavaScript 框架。 React.js jQuery Express Angular Vue.js Angular.js Svelte Next.js Ember.js Meteor React.js React.js 于 2013 年由 Meta(Facebook 前身) 推出&#xff0c;是一款开源的、免费的 JavaScript 库。React.js 被用于开…...

Java中的线程池

目录 1、线程池的概念及其用途 2、Java中的线程池是如何创建和使用的 扩展&#xff1a;有哪些不同类型的线程池&#xff1f; 3、Java中线程池有哪些常见的应用场景&#xff1f; 4、线程池在Web应用中的使用情况 5、线程池如何管理多线程请求处理 1、线程池的概念及其用途…...

excel单元格加背景颜色不生效?

如果在 Excel 中设置单元格背景颜色而发现不生效&#xff0c;可能有几个原因。以下是一些常见的解决方法&#xff1a; 1. **单元格锁定&#xff1a;** 检查所在单元格是否被锁定。如果单元格被锁定&#xff0c;并且工作表被保护&#xff0c;你可能无法更改其背景颜色。在工作表…...

鸿蒙开发板——环境搭建(南派开发)

概述 为了帮大家理清楚鸿蒙开发的套路&#xff0c;我们从头再梳理一遍相关的脉络。并为大家总结一些重点性的内容。在介绍OpenHarmony特性前&#xff0c;需要大家先明确以下两个基本概念&#xff1a; 子系统 OpenHarmony整体遵从分层设计&#xff0c;从下向上依次为&#xf…...

【C++代码】链表

算法&#xff1a;搜索、查找、排序、双指针、回溯、分治、动态规划、贪心、位运算、数学等。 数据结构&#xff1a;数组、栈、队列、字符串、链表、树、图、堆、哈希表等。 数据结构是为实现对计算机数据有效使用的各种数据组织形式&#xff0c;服务于各类计算机操作。不同的…...

01、Tensorflow实现二元手写数字识别

01、Tensorflow实现二元手写数字识别&#xff08;二分类问题&#xff09; 开始学习机器学习啦&#xff0c;已经把吴恩达的课全部刷完了&#xff0c;现在开始熟悉一下复现代码。对这个手写数字实部比较感兴趣&#xff0c;作为入门的素材非常合适。 基于Tensorflow 2.10.0 1、…...

HCIA-Datacom跟官方路线学习第二部分

接着前面第六章&#xff0c;通过VLAN技术&#xff0c; 可以将物理的局域网划分成多个广播域&#xff0c; 实现同一VLAN内的网络设备可以直接进行二层通信&#xff0c; 不同VLAN内的设备不可以直接进行二层通信。 第七章 生成树 在以太网交换网络会使用冗余链路&#xff0c; 但…...

Rust的#[derive(Hash, PartialEq, Eq)]派生宏一致性要求与自定义实现

Rust语言中的派生宏&#xff08;derive macro&#xff09;为开发者提供了便捷的方式来自动生成常见trait的实现&#xff0c;其中#[derive(Hash, PartialEq, Eq)]的组合尤为常见。这些trait在实现数据结构比较、哈希存储等场景中至关重要。派生宏的自动实现与自定义实现之间的一…...

完全免费的神器,支持批量操作

今天给大家推荐一个非常不错的图片压缩软件&#xff0c;这个软件完全免费&#xff0c;没有任何的广告&#xff0c;可以完全放心使用。 Imagine图片压缩 支持图片批量压缩 这个软件安装之后就可以直接使用了&#xff0c;我们可以看到它的界面非常简单&#xff0c;而且支持图片…...

终极Windows风扇控制指南:3步实现智能散热与静音平衡

终极Windows风扇控制指南&#xff1a;3步实现智能散热与静音平衡 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/…...

深入PyTorch源码:手把手调试grid_sample,搞懂-1到1的坐标映射与双线性插值细节

深入PyTorch源码&#xff1a;手把手调试grid_sample&#xff0c;搞懂-1到1的坐标映射与双线性插值细节 在计算机视觉和深度学习领域&#xff0c;图像变形和采样是许多任务的基础操作。PyTorch作为主流深度学习框架&#xff0c;提供了grid_sample这一强大但常被低估的函数。不同…...

基于C#winform部署软前景分割DAViD算法的onnx模型实现前景分割

基于 DAViD 算法的前景分割效果展示 项目简介 本项目是一个基于 DAViD (Denoising Aggregation for Vision and Depth) 算法的图像前景分割工具&#xff0c;使用 ONNX 模型进行推理&#xff0c;支持 CPU 和 CUDA 加速。项目采用 C# WinForms 开发&#xff0c;提供友好的图形界…...

自主智能体是什么?为什么是下一代 AI 形态

文章目录前言一、先搞懂&#xff1a;自主智能体到底是什么&#xff1f;&#xff08;人话版&#xff09;1.1 官方定义&#xff08;看完就忘版&#xff09;1.2 通俗类比&#xff08;秒懂版&#xff09;1.3 核心特征&#xff1a;5大"超能力"二、灵魂拷问&#xff1a;自主…...

别再乱用kmalloc了!Linux内核驱动开发中内存分配函数的选择避坑指南(附场景对比)

Linux内核驱动开发中的内存分配函数选择指南 在Linux内核驱动开发中&#xff0c;内存分配是一个看似简单却暗藏玄机的操作。很多开发者习惯性地使用kmalloc&#xff0c;却不知道在某些场景下这可能成为性能瓶颈甚至系统崩溃的导火索。本文将从一个驱动开发者的实战视角&#xf…...

PTPX功耗分析模式怎么选?Averaged vs. Time-Based模式深度对比与选型指南

PTPX功耗分析模式实战选型&#xff1a;从原理到决策的完整指南 芯片设计就像一场精心策划的能源管理艺术展&#xff0c;而PTPX则是我们手中那支精准的画笔。当设计进入纳米级工艺节点&#xff0c;功耗分析不再是锦上添花&#xff0c;而是决定芯片成败的关键环节。面对Averaged…...

你的ESP32项目需要BGM?手把手教你用无源蜂鸣器做个迷你音乐盒(附《成都》《后来》等流行歌曲库)

用ESP32和无源蜂鸣器打造你的专属音乐盒&#xff1a;从《成都》到《后来》的完整实现指南 你是否想过给自己的智能家居项目添加一点音乐氛围&#xff1f;或者为机器人制作一个会唱歌的小彩蛋&#xff1f;ESP32开发板搭配无源蜂鸣器&#xff0c;就能实现这个有趣的想法。不同于简…...

数学分析基础:从实数公理到确界原理的习题精解

1. 实数公理系统&#xff1a;数学分析的基石 第一次接触实数公理时&#xff0c;我完全被那一堆抽象符号搞懵了。直到后来在习题中反复摔打&#xff0c;才真正理解这些看似枯燥的公理如何构建起整个数学分析大厦。实数的公理化描述是整个数学分析的基础&#xff0c;就像盖房子前…...