用MSYS2编译diction程序
用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站点:
- 用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命令安装;
- 遇到问题除了查找网上的资料,也可以和同学交流讨论,不懂就要问!
用MSYS2编译diction程序相关推荐
- 使用MS VS的命令来编译C++程序
以前,我是在linux下使用命令或者makefile来编译C++程序的,最近需要在windows上做点测试.于是使用ms VS来作为开发工具,这种大揽全包的IDE确实好用:点一下菜单,编译结果就出来了 ...
- [转]VS2015编译的程序在其他机器上缺少msvcp120.dll
http://www.lai18.com/content/1159618.html 1. 今天分享一个自己在开发过程中遇到的困难. 用VS2015开发了一个windows客户端(win32项目),在自 ...
- linux下软件编译终止,[2018年最新整理]linux下编译运行程序命令大全.ppt
[2018年最新整理]linux下编译运行程序命令大全 1. 项目课题引入 2. Vi编辑器的使用方法 3. Linux中C语言程序的编辑 4. Linux中C语言程序的运行 5. 现场演示案例 课题 ...
- QT编译发布程序后报错如缺少dll、“应用程序无法正常启动(0xc000007b)”的可能解决方法
QT编译发布程序后报错如缺少dll."应用程序无法正常启动(0xc000007b)"的可能解决方法 参考文章: (1)QT编译发布程序后报错如缺少dll."应用程序无法正 ...
- 利用csc.exe 手动编译C#程序
1. 创建见 cs代码文件 using System; class TestApp{static void Main(){Console.WriteLine("Test! 1,2,3&quo ...
- 【开发环境】Windows 系统中使用 Makefile 构建脚本编译 C 程序 ( 下载并安装 TDM-GCC 编译器 | 配置环境变量 | 编译 Makefile 程序 )
文章目录 一.下载 TDM-GCC 编译器 二.安装 TDM-GCC 编译器 三.配置环境变量 四.根据 Makefile 脚本编译 C 程序 一.下载 TDM-GCC 编译器 下载并安装 TDM-G ...
- 【嵌入式开发】gcc 学习笔记(一) - 编译C程序 及 编译过程
一. C程序编译过程 编译过程简介 : C语言的源文件 编译成 可执行文件需要四个步骤, 预处理 (Preprocessing) 扩展宏, 编译 (compilation) 得到汇编语言, 汇编 (a ...
- 手工编译Android程序
手工编译Android程序 赖锋 我的china-unix博客 http://laiboy.cublog.cn 我的CSDN博客 http://blog.csdn.net/laiboy 程序描述 ...
- DOS命令编译JAVA程序
上篇文章给大家写了怎么安装JDK配置,现在这篇文章我们就来学习下怎么在DOS命令下编译JAVA程序,以后没编译器都可以直接编译啦(嘻嘻!) 我这里就用永远的 "Hello wrold!&qu ...
- Mingw-W64编译Windows程序提示:undefined reference to `__imp_GetStockObject' 的解决方法
gcc(Mingw-W64)编译windows程序,提示undefined reference to `__imp_GetStockObject' 的解决方法:加上-mwindows,问题解决. #i ...
最新文章
- (转)I,P,B帧和PTS,DTS的关系
- 输入法之核心词典构建
- 2020:编程语言大盘点
- eclipse 直接去手机中拖文件
- 大工14春 计算机文化基础 在线测试,大工14春《计算机文化基础》在线测试I含答案.doc...
- gitee存放代码_git / gitee 提交本地仓库代码到Git或Gitee流程 及 常见报错
- php获取当天 天气预报,PHP获取当天和72小时天气预报,并生成接口
- C#- XPath教程
- 线性代数 : 矩阵乘法和矩阵的逆
- react native 项目使用 expo 二维码扫描失败
- 根据快手账号的分享链接下载无水印视频,思路
- jQuery悬浮在线客服代码
- FreeBSD 下玩 FC 游戏
- 蓝牙 aptx android,蓝牙aptx干嘛用的
- Linux 内核模块查看命令
- CVPR 2018视频行为识别挑战赛概览
- android仿墨迹天气预报,手机天气预报 墨迹天气安卓版使用教程
- SDHK_Tool.Dynamic.SD_Motor_EulerAngle 欧拉角旋转电机
- android系统佳明app,佳明garmin手表
- 元宇宙的起源:虚拟世界进化史
热门文章
- Pixhawk之启动代码和入口函数(.mk、rcS、__start、hrt)
- 2022-2028年中国中频加热设备行业市场发展调研及未来前景规划报告
- 怎么更改网络中的计算机名字,修改网络 “本地连接”的中网络名称“网络2”为其他名称...
- CentOS防火墙配置(资源)
- vue.js中修饰符.stop的用法。
- OSChina 周五乱弹 —— 程序猿真是令人感到担忧!
- 利用Audacity对浊音、清音、爆破音进行时域、频域分析
- 两个文件行合并linux,linux 两个文件合并
- pytorch中dim的含义及相关做法
- python基础--除法,取整,取模(取余)(/,//,%),以及int最大值,大数乘法