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