Skip to content

Latest commit

 

History

History
77 lines (67 loc) · 5.22 KB

第二章.md

File metadata and controls

77 lines (67 loc) · 5.22 KB

第二章:编译与安装

一、绪论

1.我们为什么要学这个

朋友们,我们一般使用Windows时,如果要安装应用,只要下载安装文件并双击就行了,但由于一些特殊的应用因系统不同而不同,有些时候我们只能下载它的源代码并手动编译,这样的话,我们就需要

2.我们在这一节课将学到什么

通过这节课的学习,我相信你们会学到如何下载源代码并手动编译安装它们。或者下载已经编译好的的应用并且安装它们。

 

 

二、开始工作

1.安装编译环境

  • Windows10:
    你需要安装VisualStudio至少是community版;
    之后你需要下载安装cmake
    如果需要的话,你还要安装MinGW中的gcc,g++(注意,一定把它们放到环境变量中去!)
  • Linux 直接使用apt安装build-essentialcmake就行了:(sudo) apt install build-essential cmakeapt会帮你处理其他事情的。

2.Make初体验

Make主要用于Linux下

a ) 流程介绍

如果我们使用Make编译安装应用的话,一般分为以下几步:

  • ./configue
    有可能这个程序需要一些必须的库或替代库才能编译,且方法随替代库的不同而不同,或者有不同的编译方法,通过观察源代码根目录下是否有configue或类似名称的可运行文件来判断是否要这步,如果需要,运行./configue来自动配置。
  • make
    这步通过自动读取MakeFile来进行编译流程。这步可能需要数分钟到数小时不等,一般的如果出现"Warning"可以忽略,但如果make失败就需要观察错误输出来确定问题,问题可能在以下几个方面:
    • 依赖库未安装:安装就行了
    • 平台不支持:换台电脑或换个操作系统
    • 作者源代码有问题:去issue区查找问题和解决方案
  • make check / make test
    千辛万苦编译完了,我们还得确认它是的,这时就需要用到make checkmake test,当然,有些程序是不需要的。
  • (sudo) make install
    这步是在安装软件,所以需要sudo权限,普遍的,这步会比make快,因为不涉及编译。
  • make clean
    这步是献给强迫症患者,用处是删除临时文件

b ) 安装软件实例

我们以github上mtoyoda/sl这个小程序安装为例介绍一下make的流程。 这个小程序是用来"Cure your bad habit of mistyping",即治疗错误打字的坏习惯,具体效用就是如果你错误地把ls(还记得这个是干什么用的么)敲成sl的话,就会生成一个小火车: 图2.2.1

  • 第一步
    希望你们没有忘,真正的第一步是下载源代码 😂 ,这个源代码存放在github上,首先将它git clone下来如下:图2.2.2
  • 第二步
    我们直接make试试:结果Error了!图2.2.3 这是为什么呢?通过阅读错误信息我们知道,缺少了一个叫<curses.h>的库,于是我们Google一下发现这个库只需要安装ncurse就行了于是我们安装后继续make 图2.2.4 这个make好短啊,也是,这本身就是个小程序,长的make可能高达数千甚至万行,需要几个小时编译
  • 第三步
    第三步什么来着?安装make install!问为甚么不是test或check,这么小的项目check个鬼啊!图2.2.5发现这个东西并不能install
  • 第四步
    Have Fun and Good Luck 我们可以开心的玩♂这个程序了./sl 图2.2.6

3.CMake初体验

CMake是个一个开源的跨平台自动化建构系统,用来管理软件建置的程序,并不相依于某特定编译器。并可支持多层目录、多个应用程序与多个库。 它用配置文件控制建构过程的方式和Unix的make相似,只是CMake的配置文件取名为CMakeLists.txt。CMake并不直接建构出最终的软件,而是产生标准的建构档(如Unix的Makefile或Windows Visual C++的projects/workspaces),然后再依一般的建构方式使用

这就是说,CMake是用来跨平台安装的,我们通过安装一个人脸识别库Dlib来作为实例。

  • 第一步
    我们先需要从dlib网上下载源代码并解压缩
  • 第二步
    我们先新建一个叫做build的文件夹,用来cmake存放预处理后的文件:mkdir build
  • 第三步
    进入build文件夹,使用cmake ..来预处理源代码如右图图2.3.1
  • 第四步
    之后我们就可以用cmake编译了cmake --build .,因为这次是release的编译需求,我们最好加上一个--config Releasecmake --build . --config Release编译如图:图2.3.2
  • 第五步
    安装:还是(sudo) make install图就不放了。

四、练习

1.make

除了sl外你们可以找一些有趣的github上的小程序项目练习使用make一下

2.cmake

朋友们再找一些cmake编译的软件联系一下,如果用不来命令行的可以尝试一下cmake-gui