gnu工程的编译 - 以libiconv为例

文章目录

    • gnu工程的编译 - 以libiconv为例
    • 概述
    • gnu官方源码包的发布版
    • 从官方的代码库直接迁出的git版源码
    • 如果安装了360, 需要添加开发相关的目录到信任区
    • 生成 configrue 的方法
    • 备注
    • END

gnu工程的编译 - 以libiconv为例

概述

gnu工程的下载分2种:

gnu官方源码包的发布版

在这里插入图片描述
这种下载到本地后, 就是可以直接3部曲(./configure && make && make install)编译的源码包.

从官方的代码库直接迁出的git版源码

e.g. https://git.savannah.gnu.org/git/libiconv.git
在这里插入图片描述
在这里插入图片描述
这个git库迁出到本地, 是没有./configure这个文件的, 没办法直接执行3部曲编译.
文档中没有说怎么生成./configure(应该是我没耐心去翻看所有文档).

观察了一下, 工程本地有3个.sh, 试了一下成功了.
等生成了./configrue, 就可以3部曲编译工程. 编译出来的工程输出正确可用.
在这里插入图片描述

如果安装了360, 需要添加开发相关的目录到信任区

我用的360企业版.
双击托盘上的360 => 360主界面 => 木马查杀 => 右上角更多 => 信任区
在这里插入图片描述
将cygwin64的安装后的目录和工程所在的目录都加进去.
防止编译到一半, 360的拦截出来捣乱.

生成 configrue 的方法

先运行 ./autogen.sh, 如果报错, 说缺那些组件, 就装上.
缺的组件用cygwin64装上很容易.
我这里安装了: git, gettext, symbol, gperf, patch.
安装的这些组件, 都是运行.sh报错后, 添加上的, 要不也不知道附加安装一些什么组件.

通过运行./autogen.sh, 提示说 需要运行 gitsub.sh, 将gnulib拉取本地.
运行 ./gitsub.sh pull gnulib
然后再运行 ./autogen.sh, 需要很长时间(10分钟?) , 产生了 ./configure.
然后就可以执行编译3部曲了.

每个人的环境不一样, 运行产生./.sh时, 发现啥报错提示, 一般都是哪个命令在环境中没有导致的.
将环境中需要的编译命令和组件包都装全, 能让
.sh顺利运行完, 就可以了.

备注

这种git版的源码包, 是给gnu组件的研发用的. 如果不是gnu的研发, 还是不要没事找事.
如果只是想使用gnu源码编译成输出自己来用, 还是去下载发布版的压缩包, 直接3部曲编译好些.

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/305954.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙APP的代码规范

鸿蒙APP的代码规范是为了确保代码质量、可读性和可维护性而定义的一系列规则和标准。以下是一些建议的鸿蒙APP代码规范,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1. 代码风格: 采用…

Python基础语法总结

1.每条语句结束不需要分号(也可以加上), 直接换行, 注意: 如果两行代码写一行, 则必须加分号. 2.定义变量不需要指定类型(如果需要写类型, 需要在变量名后面加": 类型, 这个写法只是方便读代码). 3.变量名大小写敏感. 4.查看变量类型: type(变量名). 5.Python中的int表…

C# WPF上位机开发(报表导出)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于在工厂上班的小伙伴来说,导出生产数据、生成报表,这是很习以为常的一个工作。之前的文章中,虽然我们也介绍…

机器学习 -- 数据预处理

系列文章目录 未完待续…… 目录 系列文章目录 前言 一、数值分析简介 二、内容 前言 tips:这里只是总结,不是教程哈。 以下内容仅为暂定,因为我还没找到一个好的,让小白(我自己)也能容易理解&#x…

uniapp 底部导航栏 tabBar

在 static 文件夹中新建文件夹 tabBar,放入标签图片 源素材如下: 在 pages.json 中添加 // 底部导航"tabBar": {// tab默认文字颜色"color": "#bfbfbf",// tab选中后的文字颜色"selectedColor": "#153c65&…

普中STM32-PZ6806L开发板(HAL库函数实现-7段共阳数码管数字显示)

简介 通过操作GPIO输出电平实现驱动单个共阳数码管 0 ~ F的显示。电路原理图 数码管电路原理图 数码管与主芯片电路原理图 其他知识 1. 由原理图可知, 共阳极已接VCC, 所以只需要控制GPIO输出低电平就可以点亮7 . 的数码管了. 2. 驱动管与主芯片引脚对应关系A -> PC0…

Android---Kotlin 学习013

互操作性和可空性 Java 世界里所有对象都可能是 null,而 kotlin 里面不能随便给一个变量赋空值的。所有,kotlin 取调用 java 的代码就很容易出现返回一个 null,而 Kotlin 的接收对象不能为空,你不能想当然地认为 java 的返回值就…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前实时帧率(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用UserSet功能保存和载入相机的各类参数(C#) Baumer工业相机Baumer工业相机的帧率的技术背景Baumer工业相机的帧率获取方式CameraExplorer如何查看相机帧率信息在NEOAPI SDK里通过函数获取相机帧率 Baume…

【Spark精讲】一文讲透Spark宽窄依赖的区别

宽依赖窄依赖的区别 窄依赖:RDD 之间分区是一一对应的宽依赖:发生shuffle,多对多的关系 宽依赖是子RDD的一个分区依赖了父RDD的多个分区父RDD的一个分区的数据,分别流入到子RDD的不同分区特例:cartesian算子对应的Car…

flutter 安卓使用高德插件黑屏

地址 https://lbs.amap.com/api/android-sdk/guide/create-project/android-studio-create-project 下面介绍的方式是Native配置 sdk,也就是需要手动下载到本地在引入的方式 1、添加 jar 文件: 将下载的地图 SDK 的 jar包复制到工程(此处截…

Zookeeper-Zookeeper特性与节点数据类型详解

1.Zookeeper介绍 ZooKeeper 是一个开源的分布式协调框架,是Apache Hadoop 的一个子项目,主要用来解决分布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂目容易出错的分布式一致性服务封装起来,构成一高效可靠的原…

docker compose 部署 grafana + loki + vector 监控kafka消息

Centos7 随笔记录记录 docker compose 统一管理 granfana loki vector 监控kafka 信息。 当然如果仅仅是想通过 Grafana 监控kafka,推荐使用 Grafana Prometheus 通过JMX监控kafka 目录 1. 目录结构 2. 前提已安装Docker-Compose 3. docker-compose 自定义服…