Makefile(1)编写简单的makefile批量编译CUDA程序
2017-06-22 09:52
183 查看
本节讲述如何在命令行编译CUDA程序,使用makefile能让我们提高效率。
现在这里有若干cuda代码等待被编译:
当我们在命令行执行make edit时,代码被批量编译:
当我们想批量清空时,只需要在命令行敲上make clean即可,生成的可执行文件就被清空了。
我们来看一下这个简单又好用的makefile是如何编写的:
首先,使用变量objects定义了我们要生成的可执行文件,在这里统一定义是为了之后调用方便,想批处理直接调用$(objects)即可。当我们想添加或删除哪个cuda源码,只需要在这里修改就可以全文生效,这对于大型项目(文件多,要修改时工作量大)来说是非常好用的功能。
其次,这里的edit和clean都是标签类型,用过汇编的朋友应该不会陌生,简单来说就是当执行make+标签时,可以执行标签后面定义的内容。
.PHONY显式声明标签。
重头戏来了,真正要执行的是命令行指令。
规则是
target:依赖文件
可执行指令
默认,当执行make时,如果没有target生成或者依赖文件其中任何一个比target的修改时间要晚,target都会更新。
这里对应cuda编译的可执行指令为nvcc -o filename filename.cu。
现在这里有若干cuda代码等待被编译:
当我们在命令行执行make edit时,代码被批量编译:
当我们想批量清空时,只需要在命令行敲上make clean即可,生成的可执行文件就被清空了。
我们来看一下这个简单又好用的makefile是如何编写的:
首先,使用变量objects定义了我们要生成的可执行文件,在这里统一定义是为了之后调用方便,想批处理直接调用$(objects)即可。当我们想添加或删除哪个cuda源码,只需要在这里修改就可以全文生效,这对于大型项目(文件多,要修改时工作量大)来说是非常好用的功能。
其次,这里的edit和clean都是标签类型,用过汇编的朋友应该不会陌生,简单来说就是当执行make+标签时,可以执行标签后面定义的内容。
.PHONY显式声明标签。
重头戏来了,真正要执行的是命令行指令。
规则是
target:依赖文件
可执行指令
默认,当执行make时,如果没有target生成或者依赖文件其中任何一个比target的修改时间要晚,target都会更新。
这里对应cuda编译的可执行指令为nvcc -o filename filename.cu。
相关文章推荐
- 1.编写一个简单的C语言程序:计算输入多个整数的平均值,并将此程序分割成多个小文件。 2.为第1题中的程序编写makefile文件,用make编译后改成返回最小值,再编译,观察有多少文件不需要重新
- 1.编写一个简单的C语言程序:计算输入多个整数的平均值,并将此程序分割成多个小文件。 2.为第1题中的程序编写makefile文件,用make编译后改成返回最小值,再编译,观察有多少文件不需要重新
- OpenWrt SDK 编写交叉编译Makefile的简单方法
- gcc编译编写ARM最简单的c程序_S3C2440点亮LED
- MPI+CUDA 混合编译makefile文件编写
- 一个简单的 C 程序文件,经过 0、编写,1、预处理,2、编译,3、链接,终于生成了一个可执行文件
- Linux操作系统的简单指令及如何使用vim编写一个程序,然后使用gcc查看【预处理】、【编译】、【汇编】、【链接】各阶段文件的内容。
- 驱动模块编译及挂载的问题,简单makefile的编写
- 在eclipse中自己编写makefile后程序的编译运行方法
- 使用python编写简单的小程序编译成exe跑在win10上
- 简单编写makefile文件,实现GCC4.9编译项目,增加boost库測试等等。。
- 简单理解makefile与程序的编译联接
- 简单编写makefile文件,实现GCC4.9编译项目,加入boost库测试等等。。
- 编写简单的中文分词程序
- Servlet技术简介与编写、编译Servlet程序
- Servlet技术简介与编写、编译Servlet程序
- 用java编写简单UDP网络通信程序
- 编写简单的中文分词程序
- 简单的用PHP编写的导航条程序
- [转]编写简单的中文分词程序