当前位置: 首页 > 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; 但…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

若依登录用户名和密码加密

/*** 获取公钥&#xff1a;前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...