朋友们,我们一般使用Windows时,如果要安装应用,只要下载安装文件并双击就行了,但由于一些特殊的应用因系统不同而不同,有些时候我们只能下载它的源代码并手动编译,这样的话,我们就需要
通过这节课的学习,我相信你们会学到如何下载源代码并手动编译安装它们。或者下载已经编译好的的应用并且安装它们。
- Windows10:
你需要安装VisualStudio至少是community版;
之后你需要下载安装cmake
如果需要的话,你还要安装MinGW中的gcc,g++(注意,一定把它们放到环境变量中去!) - Linux
直接使用apt安装
build-essential
和cmake
就行了:(sudo) apt install build-essential cmake
apt会帮你处理其他事情的。
如果我们使用Make编译安装应用的话,一般分为以下几步:
- ./configue
有可能这个程序需要一些必须的库或替代库才能编译,且方法随替代库的不同而不同,或者有不同的编译方法,通过观察源代码根目录下是否有configue或类似名称的可运行文件来判断是否要这步,如果需要,运行./configue
来自动配置。 - make
这步通过自动读取MakeFile来进行编译流程。这步可能需要数分钟到数小时不等,一般的如果出现"Warning"可以忽略,但如果make失败就需要观察错误输出来确定问题,问题可能在以下几个方面:- 依赖库未安装:安装就行了
- 平台不支持:换台电脑或换个操作系统
- 作者源代码有问题:去issue区查找问题和解决方案
- make check / make test
千辛万苦编译完了,我们还得确认它是好的,这时就需要用到make check
或make test
,当然,有些程序是不需要的。 - (sudo) make install
这步是在安装软件,所以需要sudo权限,普遍的,这步会比make
快,因为不涉及编译。 - make clean
这步是献给强迫症患者,用处是删除临时文件
我们以github上mtoyoda/sl
这个小程序安装为例介绍一下make的流程。
这个小程序是用来"Cure your bad habit of mistyping",即治疗错误打字的坏习惯,具体效用就是如果你错误地把ls
(还记得这个是干什么用的么)敲成sl
的话,就会生成一个小火车:
- 第一步
希望你们没有忘,真正的第一步是下载源代码 😂 ,这个源代码存放在github上,首先将它git clone
下来如下: - 第二步
我们直接make
试试:结果Error
了! 这是为什么呢?通过阅读错误信息我们知道,缺少了一个叫<curses.h>
的库,于是我们Google一下发现这个库只需要安装ncurse
就行了于是我们安装后继续make
这个make
好短啊,也是,这本身就是个小程序,长的make
可能高达数千甚至万行,需要几个小时编译 - 第三步
第三步什么来着?安装make install
!问为甚么不是test或check,这么小的项目check个鬼啊!发现这个东西并不能install - 第四步
Have Fun and Good Luck 我们可以开心的玩♂这个程序了./sl
CMake是个一个开源的跨平台自动化建构系统,用来管理软件建置的程序,并不相依于某特定编译器。并可支持多层目录、多个应用程序与多个库。 它用配置文件控制建构过程的方式和Unix的make相似,只是CMake的配置文件取名为CMakeLists.txt。CMake并不直接建构出最终的软件,而是产生标准的建构档(如Unix的Makefile或Windows Visual C++的projects/workspaces),然后再依一般的建构方式使用
这就是说,CMake是用来跨平台安装的,我们通过安装一个人脸识别库Dlib来作为实例。
- 第一步
我们先需要从dlib网上下载源代码并解压缩 - 第二步
我们先新建一个叫做build的文件夹,用来cmake存放预处理后的文件:mkdir build
- 第三步
进入build文件夹,使用cmake ..
来预处理源代码如右图 - 第四步
之后我们就可以用cmake编译了cmake --build .
,因为这次是release的编译需求,我们最好加上一个--config Release
即cmake --build . --config Release
编译如图: - 第五步
安装:还是(sudo) make install
图就不放了。
除了sl外你们可以找一些有趣的github上的小程序项目练习使用make一下
朋友们再找一些cmake编译的软件联系一下,如果用不来命令行的可以尝试一下cmake-gui