用MSYS2编译diction程序

一、准备工具

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

2. 检查工具版本

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

安装成功则出现:

二、得到源码

1. 创建src目录并进入

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

2. 使用ftp协议下载源码

    Administrator@PC-20210123GBWP MSYS ~/src#ftp ftp.gnu.org230 Login successfu1.220 GNU FTP server ready.Name (ftp . gnu . org : Administrator): anonymous230 Login successfu1.ftp> cd gnu/diction250 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. 遇到问题除了查找网上的资料,也可以和同学交流讨论,不懂就要问!

用MSYS2编译diction程序相关推荐

  1. 使用MS VS的命令来编译C++程序

    以前,我是在linux下使用命令或者makefile来编译C++程序的,最近需要在windows上做点测试.于是使用ms VS来作为开发工具,这种大揽全包的IDE确实好用:点一下菜单,编译结果就出来了 ...

  2. [转]VS2015编译的程序在其他机器上缺少msvcp120.dll

    http://www.lai18.com/content/1159618.html 1. 今天分享一个自己在开发过程中遇到的困难. 用VS2015开发了一个windows客户端(win32项目),在自 ...

  3. linux下软件编译终止,[2018年最新整理]linux下编译运行程序命令大全.ppt

    [2018年最新整理]linux下编译运行程序命令大全 1. 项目课题引入 2. Vi编辑器的使用方法 3. Linux中C语言程序的编辑 4. Linux中C语言程序的运行 5. 现场演示案例 课题 ...

  4. QT编译发布程序后报错如缺少dll、“应用程序无法正常启动(0xc000007b)”的可能解决方法

    QT编译发布程序后报错如缺少dll."应用程序无法正常启动(0xc000007b)"的可能解决方法 参考文章: (1)QT编译发布程序后报错如缺少dll."应用程序无法正 ...

  5. 利用csc.exe 手动编译C#程序

    1. 创建见 cs代码文件 using System; class TestApp{static void Main(){Console.WriteLine("Test! 1,2,3&quo ...

  6. 【开发环境】Windows 系统中使用 Makefile 构建脚本编译 C 程序 ( 下载并安装 TDM-GCC 编译器 | 配置环境变量 | 编译 Makefile 程序 )

    文章目录 一.下载 TDM-GCC 编译器 二.安装 TDM-GCC 编译器 三.配置环境变量 四.根据 Makefile 脚本编译 C 程序 一.下载 TDM-GCC 编译器 下载并安装 TDM-G ...

  7. 【嵌入式开发】gcc 学习笔记(一) - 编译C程序 及 编译过程

    一. C程序编译过程 编译过程简介 : C语言的源文件 编译成 可执行文件需要四个步骤, 预处理 (Preprocessing) 扩展宏, 编译 (compilation) 得到汇编语言, 汇编 (a ...

  8. 手工编译Android程序

    手工编译Android程序   赖锋 我的china-unix博客 http://laiboy.cublog.cn 我的CSDN博客 http://blog.csdn.net/laiboy 程序描述 ...

  9. DOS命令编译JAVA程序

    上篇文章给大家写了怎么安装JDK配置,现在这篇文章我们就来学习下怎么在DOS命令下编译JAVA程序,以后没编译器都可以直接编译啦(嘻嘻!) 我这里就用永远的 "Hello wrold!&qu ...

  10. Mingw-W64编译Windows程序提示:undefined reference to `__imp_GetStockObject' 的解决方法

    gcc(Mingw-W64)编译windows程序,提示undefined reference to `__imp_GetStockObject' 的解决方法:加上-mwindows,问题解决. #i ...

最新文章

  1. (转)I,P,B帧和PTS,DTS的关系
  2. 输入法之核心词典构建
  3. 2020:编程语言大盘点
  4. eclipse 直接去手机中拖文件
  5. 大工14春 计算机文化基础 在线测试,大工14春《计算机文化基础》在线测试I含答案.doc...
  6. gitee存放代码_git / gitee 提交本地仓库代码到Git或Gitee流程 及 常见报错
  7. php获取当天 天气预报,PHP获取当天和72小时天气预报,并生成接口
  8. C#- XPath教程
  9. 线性代数 : 矩阵乘法和矩阵的逆
  10. react native 项目使用 expo 二维码扫描失败
  11. 根据快手账号的分享链接下载无水印视频,思路
  12. jQuery悬浮在线客服代码
  13. FreeBSD 下玩 FC 游戏
  14. 蓝牙 aptx android,蓝牙aptx干嘛用的
  15. Linux 内核模块查看命令
  16. CVPR 2018视频行为识别挑战赛概览
  17. android仿墨迹天气预报,手机天气预报 墨迹天气安卓版使用教程
  18. SDHK_Tool.Dynamic.SD_Motor_EulerAngle 欧拉角旋转电机
  19. android系统佳明app,佳明garmin手表
  20. 元宇宙的起源:虚拟世界进化史

热门文章

  1. Pixhawk之启动代码和入口函数(.mk、rcS、__start、hrt)
  2. 2022-2028年中国中频加热设备行业市场发展调研及未来前景规划报告
  3. 怎么更改网络中的计算机名字,修改网络 “本地连接”的中网络名称“网络2”为其他名称...
  4. CentOS防火墙配置(资源)
  5. vue.js中修饰符.stop的用法。
  6. OSChina 周五乱弹 —— 程序猿真是令人感到担忧!
  7. 利用Audacity对浊音、清音、爆破音进行时域、频域分析
  8. 两个文件行合并linux,linux 两个文件合并
  9. pytorch中dim的含义及相关做法
  10. python基础--除法,取整,取模(取余)(/,//,%),以及int最大值,大数乘法