用MSYS2编译diction程序

用MSYS2编译diction程序

一、准备工具

1. 为msys2安装gcc和make工具包

2. 检查工具版本

  Administrator@PC-20210123GBWP MSYS ~
  #make -v
  Administrator@PC-20210123GBWP MSYS ~
  #gcc -v

安装成功则出现:
在这里插入图片描述

二、得到源码

1. 创建src目录并进入

    Administrator@PC-20210123GBWP MSYS ~
    #mkdir src
    Administrator@PC-20210123GBWP MSYS ~
    #cd src

2. 使用ftp协议下载源码

    Administrator@PC-20210123GBWP MSYS ~/src
    #ftp ftp.gnu.org
    230 Login successfu1.
    220 GNU FTP server ready.
    Name (ftp . gnu . org : Administrator): anonymous
    230 Login successfu1.
    ftp> cd gnu/diction
    250 Directory successful ly changed.
    ftp> ls

此时出现如下错误:
在这里插入图片描述

解决如下:
在这里插入图片描述

再次输入ls命令即为正常,获取diction压缩包,退出ftp站点:
在这里插入图片描述

  1. 用tar程序解包
    在这里插入图片描述

为了避免一些项目不会自动创建project.x.xx目录,导致src目录混乱,可执行命令:
在这里插入图片描述

三、检查源码树

1. 查看diction文件

在这里插入图片描述

2. 用less命令可查看文件

例如:查看以.c和.h的文件
在这里插入图片描述

文件在vim中打开,输入:q即可退出
在这里插入图片描述

四、构建程序

1…/configure命令

作用:

  • 首先检查机器的一些配置和环境,系统的相关依赖。如果缺少相关依赖,脚本会停止执行,软件安装失败
  • 根据之前检查环境和依赖的结果,生产Makefile文件

输入./configure命令出现如下错误
在这里插入图片描述

在这一步我卡了很久,在网上查了也没有结果,后来有同学在群里提到这个报错,老师一句话就点明了,使用64位的msys2即可解决。所以说,不懂就要问啊。
在这里插入图片描述

这里必须要没有错误信息,否则整个配置过程失败!

2.make命令

作用:

  • make是Unix系统下的一个包,执行make命令需Makefile文件。make会根据Makefile文件中指令来安装软件
  • Makefile文件中有许多标签,来表示不同的section。一般的,make会编译源代码并生成可执行文件,其实Makefile主要就是描述文件编译的相互依赖关系

输入make命令:

    Administr ator@PC- 20210123GBWP MINGW64 ~/src/diction-1.11
    #make

执行成功:
在这里插入图片描述

五、安装程序

make install命令

作用:

  • 当执行make命令不加任何参数,程序就会按照Makefile的指令 在相应的section间跳转并且执行相应的命令
  • 加Linstall参数即执行make install时,程序只会执行install section处的命令。install section的指令会将make阶段生产的可执行文件拷贝到相应的地方,例如usr/ocal/bin. make clean会删除上次make.生产的obj文件以及可执行文件

输入命令:

    Administr ator@PC- 20210123GBWP MINGW64 ~/src/diction-1.11
    #make install

安装成功!:
在这里插入图片描述

检查安装:
在这里插入图片描述

结束!!


总结

  1. 在编译程序中学习了一些基本命令如:mkdir创建目录,cd进入目录,less查看文件,./configure检查配置并生成Makefile文件,make执行Makefile安装文件,make install在系统目录安装最终的产品等;
  2. 在msys2和在Ubuntu系统中有一些命令还是不一样的,例如最后的make install,在Ubuntu系统中需要我们变成超级用户,用sudo make install命令安装;
  3. 遇到问题除了查找网上的资料,也可以和同学交流讨论,不懂就要问!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值