makefile
- 编译的步骤
- 预处理(Preprocessing) -> 编译(Compilation) -> 汇编(Assemble) -> 链接(Linking)
- 参数
参数(字母顺序) | 备注 |
---|---|
-c | 只激活预处理,编译,和汇编,把程序做成obj文件(未链接) |
-g | 编译时生成调试信息 |
-I | 指定包含文件的搜索路径 |
-L | 指定库文件的搜索路径(l后紧跟所指定的路径),如-L/usr/local/cuda/lib64 |
-l | 指定链接时需要的库文件(l后紧跟所指定的库),如-lcudart |
-ldir | 有现在指定目录中查找头文件 |
-O0/O1/O2/O3 | 优化等级 |
-o | 指定输出文件的位置和名称 |
1. 错误
-
*** missing separator. Stop.
检查是否用四个空格替换了tab。Makefile只接受tab作为缩进符。
2. 使用for循环编译多个文件
- Makefile中使用 for 控制结构编译多个目标文件
- 用外部shell变量HOME时需要用两次$符号