bc命令学习9 获取bc命令的源码并编译

server/2025/3/4 21:11:35/

本文介绍如何获取bc命令的源码并编译,这个对于初学linux还是有点难的,主要坑比较多。下面主要介绍windows下使用wsl环境进行编译

1 初始化工作

创建一个文件夹,我选择创建一个C:\run\linux,这个可以自己选择.然后启动在该文件夹下面启动wsl
,首先获取bc文件的相关信息,可以看出bc命令的相关介绍

#获取bc命令的相关信息
apt show bc

bc命令信息

2 下载bc命令的源码

下载bc源码使用apt-get 命令,格式如下

#获取bc命令源码
apt-get source bc

注意直接输入命令可能会报错,报错信息如下
ubuntu apt-get (You must put some ‘source’ URIs in your sources.list)
E: You must put some ‘source’ URIs in your sources.list
原因是没有配置好获取源码的地址,需要自己添加,源码地点的配置信息在
/etc/apt/sources.list文件,打开该文件

#显示该文件信息
cat /etc/apt/sources.list

在这里插入图片描述

#打开该文件
nano /etc/apt/sources.list复制粘贴下面内容,添加清华镜像源deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted universe multiverse按ctrl+s保存
按ctrl+x退出
#显示该文件信息,确认已经修改
cat /etc/apt/sources.list
#再输入下面命令更新数据库
apt-get update

在这里插入图片描述
若下载成功,会得到三个文件,和一个文件夹,文件中包含源码
在这里插入图片描述

3 编译源码

先生成makefile文件

#跳转到该目录
cd bc-1.07.1
#生成makefile文件

若命令执行成功,该目录下会得到一个makefile文件

在这里插入图片描述
编译程序

# 输入make即能编译程序
make

但是这个过程一般会有各种出错信息,主要一个原因是系统的automake的版本过高,需要automake1.14.1版本,需要自己下载安装

#需先卸载原来的automake
apt remove automake
#下载automake源码
wget http://ftp.gnu.org/gnu/automake/automake-1.14.1.tar.gz
#解压源码
tar -zxvf automake-1.14.1.tar.gz 
#切换目录
cd automake-1.14.1
#生成make文件
./configure
#编译
make
#安装编译好的程序
make install
#显示automake的版本
automake --versioncd..

安装过程参考网址
https://wugenqiang.blog.csdn.net/article/details/81737137?fromshare=blogdetail&sharetype=blogdetail&sharerId=81737137&sharerefer=PC&sharesource=sinat_41629921&sharefrom=from_link

重新进行make编译程序,若出现下面信息则编译成功.
在这里插入图片描述

#编译的程序在C:\run\linux\bc-1.07.1\bc\bc,若想使用
使用自己编译的bc命令
./bc/bc

在这里插入图片描述

4 小结

通过编译bc命令,可以了解linux下如何获取程序源码并进行编译,包括一些基础问题的解决。


http://www.ppmy.cn/server/172431.html

相关文章

Lua | 每日一练 (5)

💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 Lua | 每日一练 (5)题目参考答案浅拷贝深拷贝使用场景…

蓝桥与力扣刷题(蓝桥 k倍区间)

题目:给定一个长度为 N 的数列,A1,A2,⋯AN​,如果其中一段连续的子序列 Ai,Ai1,⋯Aj( i≤j ) 之和是 K 的倍数,我们就称这个区间[i,j] 是 K 倍区间。 你能求出数列中总共有多少个 K 倍区间吗? 输入描述 第一行包含两…

【Elasticsearch】集群配置性能优化

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探…

网络原理 初识[Java EE]

目录 网络发展史 独立模式 网络互联 局域网 LAN 1. 基于网络直连 2. 基于集线器(Hub)组建 3. 基于交换机(Switch)组建 4. 基于交换机和路由器(Router)组建 广域网 WAN 网络通信基础 IP 地址 1. 概念 2. 格式 端口号 1. 概念 2.格式 认识协议 1. 概念 2. 作用…

redis八股个人总结

1.MySQL和Redis的区别? 1. 基本特性 MySQL 类型:关系型数据库(RDBMS)存储方式:基于表的结构化数据存储,数据以行和列的形式存储。数据一致性:遵循ACID(原子性、一致性、隔离性、持…

Van Uploader解决Android11及以下系统上传图片无反应问题

在项目实际开发中,使用van-uploader上传图片,遇到有些Android机型点击上传图片无反应的问题,后来经过仔细分析和查找原因,发现是van-uploader官方库有特殊说明 van-uploader官方说明:Vant 4 - A lightweight, customi…

陕西省地标-DB61/T 1121-2018 政务服务中心建设和运营规范

揭秘陕西省智慧政务服务中心新标准:打造高效便捷的服务新体验 随着信息化时代的深入发展,智慧政务已成为提升政府服务效率、优化营商环境的重要举措。陕西省作为全国政务改革的先行者,近期颁布了《陕西省地标-DB61_T 1121-2018 政务服务中心…

介绍一款飞算JavaAI编程工具,集成到idea,图文并茂

飞算的插件下载地址,里边也有安装步骤: JavaAI 下载 从file-》setting-》plugin,然后走图中所示 选择从磁盘安装插件:找到下载好的压缩包然后进行idea重启 根据提示模块可以生成代码,就是需要等待,后期不…