如何给Makefile指定自己想用的gcc/g++版本(编译开源项目acl-dev/acl库时的经历)

2023-10-27


最近在Github上找到了一个很不错的C++服务器框架库,所以Clone了一份想试试,下图是该项目首页:

项目主持人也给出了相应平台的库编译方式(此处只涉及其常用的三个库):

以上是三库合一的编译方式,当然也可独自编译。如果这样,需要注意一点:

因为 lib_acl 是最基础的库,而 lib_protocol 依赖于 lib_acl,lib_acl_cpp 依赖于 lib_protocol 和 lib_acl,所在生成动态库时,需要注意生成顺序,编译顺序为:lib_acl,lib_protocol,lib_acl_cpp。 


此处采用最简单三库和一的编译方式:即简单的使用命令 make build_one (其Makefile文件就在项目根目录下)

编译时出现致命错误,无法编译:

究其原因,最后发现有可能是gcc版本过高!!(上图编译用的是gcc-9.1)

最后不得不去下载一个较低版本的gcc,选了gcc-4.9

有了低版本的GCC之后,就可以重新开始编译了,使用如下命令指定低版本GCC:

make build_one CC=gcc-4.9 CPP=g++-4.9 CXX=g++-4.9 LD=g++-4.9

结果发现又编译不过,报错如下(无共享库libmpfr.so.4):

/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/cc1: error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory

此时只需使用如下命令创建libmpfr.so.4(简单的建立一个软链接就行):

 ln -s /usr/lib/libmpfr.so.6 /usr/lib/libmpfr.so.4 

最后,成功编译:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何给Makefile指定自己想用的gcc/g++版本(编译开源项目acl-dev/acl库时的经历) 的相关文章

随机推荐

  • java对象转jsonarray,并运用stream流各实例(jsonArray循环、分组、强转、某个字段集合值、集合用条件筛选对象)

    持续更新 获取集合某个字段的值 set接收 list集合根据字段分组 list筛选返回对象 没有返回null 集合筛选对象 如果有返回对象 没有返回null parallelStream 多线程 异步任务 流 使用lambda表达式的Map
  • UNIX网络编程卷一 学习笔记 第二十二章 高级UDP套接字编程

    TCP是一个字节流协议 又使用滑动窗口 因此没有记录边界或发送者数据发送能力超过接收者接收能力之类的事情 但对于UDP 每个输入操作对应一个UDP数据报 一个记录 因此当收取的数据报大于引用的输入缓冲区时就有问题 UDP是不可靠协议 但有些
  • 4-5非连续内存分配:页表-方向页表

    页表的大小和逻辑地址的空间大小 是有一个对应关系的 l逻辑空间越大 寻址空间也就越大 其实意味者对应的页表也越多 那有没有办法使得页表项不和l逻辑地址空间有直接的关系 尽量和物理地址空间建立关系 这其实就是所谓的方向页表的想法 方法一 页寄
  • Linux——IP协议

    IP协议是网络层一个协议 IP协议主要来实现报文段在网络环境中的转发 特点 无连接 不可靠 无状态 指通信双方不同步传输数据的状态信息 因此所有 IP 数据报的发送 传输和接收都是相互独立 没有上下文关系的 路由器实现就是到网络层 所以每台
  • 【疑点】js中的break,continue和return到底怎么用?

    为什么要说个 好像很简单 但是我也会迷糊 不懂有时候为什么要用return 然而break和continue也经常和他放在一起 所以就一起来说一说 这三个看起来很简单 却常常会出错的关键词的具体用法 主要从以下几个方面来详细论述 1 3个关
  • Python 计算机视觉(十五)—— 图像特效处理

    参考的一些文章以及论文我都会给大家分享出来 链接就贴在原文 论文我上传到资源中去 大家可以免费下载学习 如果当天资源区找不到论文 那就等等 可能正在审核 审核完后就可以下载了 大家一起学习 一起进步 加油 目录 前言 1 毛玻璃特效 2 浮
  • 【CV】第 16 章:结合计算机视觉和强化学习

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • sharding-jdbc异步执行bug UnsupportedOperationException

    Cause java lang UnsupportedOperationException Cannot support database type MySQL 注册时异步bug 优先注册即可NewInstanceServiceLoader
  • C++智能指针weak_ptr详解

    一 介绍 std weak ptr 是一种智能指针 通常不单独使用 只能和 shared ptr 类型指针搭配使用 可以视为 shared ptr 指针的一种辅助工具 借助 weak ptr 类型指针可以获取 shared ptr 指针的一
  • 川教版计算机三年级下册教案,川教版小学三年级下册信息技术教案(全册)

    川教版小学三年级下册信息技术教案 全册 小学学年度第二学期 信息技术 教学工作计划 一 学情分析 孩子们经过了三年级上期的学习 大部分孩子已经养成了良好的学习习惯 本学期教师要继续保护并且激发学生的学习热情 培养孩子的自信心 教给孩子科学的
  • 音视频开发二:音视频知识总结

    文章目录 简介 简单理解 音视频原理 音视频理论基础 音频 声音介绍 为什么要存在数字音频 什么是数字音频 从 模拟信号 到 数字化 的过程 1 采样 2 量化 3 编码 音频存储空间 音频编码 音频解码 视频 颜色模型 光和颜色 YUV
  • idea单元测试时,@Test爆红解决方案

    如果出现以下单元测试 Test爆红 第一种解决方案 选中 alt enter 点Add Maven dependency 选中下图第一个选项 之后再选中注解 Test 同时按alt enter 便可解决 第二种解决方案 点击pom xml文
  • java url加密_Java实现url加密处理的方法示例

    本文实例讲述了Java实现url加密处理的方法 分享给大家供大家参考 具体如下 package test import java security Key import java security SecureRandom import j
  • jsp实现简易计算器

    一 案例演示 输入两个数实现加减乘除 结果输出到页面上 二 实现步骤 1 addall jsp 简易的jsp代码 有两个输入框 四个提交按钮
  • 设计一个学生类 Student 包含姓名、成绩两个属性。定义一个无参的构造方法和一个接收两个参数的构造方法。

    请按照以下要求设计一个学生类 Student 并进行测试 要求如下 Student 类中包含姓名 成绩两个属性 分别给这两个属性定义两个方法 一个方法用于设置值 另一个方法用于获取值 Student 类中定义一个无参的构造方法和一个接收两个
  • OpenGL ES EGL介绍

    前面已经在android平台上使用OpenGL ES的API了解了如何创建3D图形已经使用FBO渲染到纹理进行一些其他的操作 起初我学习OpenGL ES的目的就是为了研究Android平台上录制屏幕的方案 到目前为止 基础知识已经具备了
  • 稀疏矩阵 存储格式 COO CSR DIA ELL HYB

    稀疏矩阵是指矩阵中的元素大部分是0的矩阵 事实上 实际问题中大规模矩阵基本上都是稀疏矩阵 很多稀疏度在90 甚至99 以上 因此我们需要有高效的稀疏矩阵存储格式 本文总结几种典型的格式 COO CSR DIA ELL HYB 1 Coord
  • 低代码,或将颠覆开发行业?

    前言 传统的软件开发过程往往需要耗费大量的时间和精力 因为开发人员需编写复杂的代码以完成各种功能 低代码行业的发展 正好解决了这个问题 让复杂的代码编写一去不复返了 文章目录 前言 引入 强大的平台 总结 引入 低代码平台 是一种通过可视化
  • opencv滤波及C++代码实现(高斯,中值,均值,双边)

    图像平滑 图像平滑的目的之一是消除噪声 二是模糊图像 从信号频谱的角度来看 信号缓慢变化的部分在频率域表现为低频 迅速变化的部分表现为高频 图像在获取 储存 处理 传输过程中 会受到电气系统和外界干扰而存在一定程度的噪声 图像噪声使图像模糊
  • 如何给Makefile指定自己想用的gcc/g++版本(编译开源项目acl-dev/acl库时的经历)

    最近在Github上找到了一个很不错的C 服务器框架库 所以Clone了一份想试试 下图是该项目首页 项目主持人也给出了相应平台的库编译方式 此处只涉及其常用的三个库 以上是三库合一的编译方式 当然也可独自编译 如果这样 需要注意一点 因为