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时需要用两次$符号