linux下编译C++代码之makefile
具体可参考这边博客:http://blog.csdn.net/ruglcc/article/details/7814546
- makefile文件书写规则
- makefile常用宏
- makefile示例
- 遇到的问题以及解决方案
makefile文件书写规则
目标 : 需要的条件 (注意冒号两边有空格)
命令 (注意前面用tab键开头)
解释一下:
1 目标可以是一个或多个,可以是Object File,也可以是执行文件,甚至可以是一个标签。
2 需要的条件就是生成目标所需要的文件或目标
3 命令就是生成目标所需要执行的脚本
总结一下,就是说一条makefile规则规定了编译的依赖关系,也就是目标文件依赖于条件,生成规则用命令来描述。在编译时,如果需要的条件的文件比目标更新的话,就会执行生成命令来更新目标。
makefile常用宏
$@ 表示目标文件
$< 表示第一个依赖文件
$^ 表示所有依赖文件
makefile示例
代码块语法遵循标准markdown代码,例如:
# 1、准备工作,编译方式、目标文件名、依赖库路径的定义。
CC = g++
CFLAGS := -Wall -O3 -std=c++0x
# opencv 头文件和lib路径
OPENCV_INC_ROOT = /usr/local/include/opencv2
OPEN_IN=/usr/local/include/opencv
OPENCV_LIB_ROOT = /usr/local/lib
SUPERLU_LIB_ROOT