在Xcode中,我们写完程序直接Run编译运行,我们的IDE集成开发环境会帮我们自动编译。不用自己写编译文件,而在Linux下,我们的g++编译器,在写完程序后需要一个Makefile文件,把程序编译出来。也就是把我们的代码编译成二进制文件,程序才能运行。手写一个Makefile文件,可以从一个最基本的层面了解程序是如何跑起来的,Makefile的写法很多,我们用一种比较精简的方式,基本上所有的程序都可以这样去做。
文件结构
先看一下我们已经写好的程序源文件和借由Makefile生成的编译文件的整体目录结构。这是一个模拟深度神经网络中,输入原始图像数据和卷积核,生成图像特征的过程。即我们用图像的原始数据和卷积核的乘积计算了一次图像的特征值。程序的细节无需了解,我们重点看程序是如何通过我们制作的Makefile文件运行并跑起来的。
文件目录结构
最外层的cnn
文件夹和main.cpp
util.cpp
util.h
是我们的源程序。
Makefile
是我们即将要制作的手写编译文件。
最上面的build
文件夹是我们通过Makefile编译出来的文件,内部的obj
文件夹内是与源程序的实现文件相对应的目标文件,而build下面的cnn
你可以认为它类似于Windows下的.exe可执行文件。
软件环境:
Virtua