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

UbuntuV24.04安装mpdecimal库(libmpdec),从源码编译

目录

〇 简介

一 下载源码,编译安装libmpdec

二 安装完成后让系统加载

三 编写测试文件test_mpdec.c

四 编译测试程序

五 运行测试


〇 简介

python安装构建-官方文档

在Ubuntu下安装python时,要安装python的依赖库,可选模型中 Ubuntu 24.04 没有 libmpdec-dev

you can install the build dependencies via apt:

$ sudo apt-get build-dep python3
$ sudo apt-get install pkg-config

If you want to build all optional modules, install the following packages and their dependencies:

$ sudo apt-get install build-essential gdb lcov pkg-config \libbz2-dev libffi-dev libgdbm-dev libgdbm-compat-dev liblzma-dev \libncurses5-dev libreadline6-dev libsqlite3-dev libssl-dev \lzma lzma-dev tk-dev uuid-dev zlib1g-dev libzstd-dev

Debian 12 and Ubuntu 24.04 do not have the libmpdec-dev package. You can safely remove it from the install list above and the Python build will use a bundled version. But we recommend using the system libmpdec library. Either built it from sources or install this package from https://deb.sury.org.

以下讲解从源码编译安装libmpdec库及简单测试的方法。

一 下载源码,编译安装libmpdec

#!/bin/bash# 更新系统包列表
sudo apt update# 安装必要的构建工具和依赖库
sudo apt install -y build-essential autoconf automake libtool pkg-config# 创建一个临时目录来存放下载的文件
TEMP_DIR=$(mktemp -d)
cd "$TEMP_DIR"# 下载 libmpdec 的最新版本源码
wget https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz# 解压源码包
tar xzf mpdecimal-2.5.1.tar.gz
cd mpdecimal-2.5.1# 配置编译选项
./configure --prefix=/usr/local# 编译源码
make# 安装编译好的库
sudo make install# 清理临时文件
cd ..
rm -rf "$TEMP_DIR"


二 安装完成后让系统加载

库文件通常位于 /usr/local/lib 或 /usr/local/lib/x86_64-linux-gnu。

头文件通常位于 /usr/local/include。

执行 ldconfig 重建系统动态链接库缓存

三 编写测试文件test_mpdec.c

#include <stdio.h>
#include <mpdecimal.h>int main() {// 设置 decimal 上下文,指定精度为 20 位mpd_context_t ctx;mpd_init(&ctx, 20);  // 20 位精度// 创建两个 decimal 数mpd_t *a = mpd_new(&ctx);mpd_t *b = mpd_new(&ctx);mpd_t *result = mpd_new(&ctx);// 设置值:a = 1.23456789, b = 9.87654321mpd_set_string(a, "1.23456789", &ctx);mpd_set_string(b, "9.87654321", &ctx);// 执行加法:result = a + bmpd_add(result, a, b, &ctx);// 打印结果char *output = mpd_to_sci(result, 1);  // 科学计数风格,1 表示带符号printf("Result of 1.23456789 + 9.87654321 = %s\n", output);// 释放内存free(output);mpd_del(a);mpd_del(b);mpd_del(result);return 0;
}

四 编译测试程序

由于​​是从源码编译安装的 libmpdec​​,而不是通过系统包管理器(比如 apt)安装的,因此:
​​编译时必须手动告诉 gcc libmpdec 的头文件路径 和 库文件路径​

gcc test_mpdec.c -o test_mpdec \-I/usr/local/include \-L/usr/local/lib \-lmpdec

五 运行测试

./test_mpdec

看到结果

Result of 1.23456789 + 9.87654321 = 11.11111110


 

http://www.dtcms.com/a/351213.html

相关文章:

  • 广告推荐模型3:域感知因子分解机(Field-aware Factorization Machine, FFM)
  • 机器人 - 无人机基础(6) - 状态估计(ing)
  • 1 线性模型
  • 支持向量机(SVM)
  • Java 大视界 -- Java 大数据机器学习模型在金融市场波动预测与资产配置动态调整中的应用
  • 网站开发用什么语言好
  • CentOS扩容非LVM分区
  • PortSwigger靶场之Blind SQL injection with out-of-band interaction通关秘籍
  • Redis--2
  • 在 TencentOS 3 上部署 OpenTenBase:从底层原理到生产级实践的深度指南
  • DBeaver下载安装使用
  • 支持向量机(SVM)算法总结
  • 大数据毕业设计选题:基于大数据的用户贷款行为数据分析系统Spark SQL核心技术
  • 迷你版Shell:源码详解与行为解析
  • 【Linux 34】Linux-主从复制
  • 嵌入式学习日记(34)HTTP协议
  • 支持向量机核心知识总结
  • 读懂支持向量机(SVM)
  • CI/CD 全链路实践:从 Git 基础到 Jenkins + GitLab 企业级部署
  • Flask 之上下文详解:从原理到实战
  • IDEA-Maven和Tomcat乱码问题
  • 2025改版:npm 新淘宝镜像域名地址
  • Uniapp(Vue2)Api请求封装
  • 企业级集群部署gpmall商城:MyCat+ZooKeeper+Kafka 环境部署与商城应用上线流程
  • VxWorks 核心数据结构详解 【消息队列、环形缓冲区、管道、FIFO、双缓冲区、共享内存】
  • Debian Buster 软件源失效问题
  • 在分布式环境下正确使用MyBatis二级缓存
  • 虚拟滚动优化——js技能提升
  • zookeeper-保姆级配置说明
  • http与https配置