初探Makefile
来源:互联网 发布:手机淘宝1元秒杀入口 编辑:程序博客网 时间:2024/05/29 04:30
由于近期实验室工作的原因,需要到Linux环境下生成一个C++项目的动态库文件,开始第一次采用写Makefile的方式来生成。在Linux平台下面,C/C++项目的源码文件首先会通过编译生成.o文件,它也被称为OBJ目标文件,在这一步中,编译主要完成的任务是对源代码中的语法和逻辑进行检查,若通过则将生成.o文件,下一步是链接过程,该过程将会产生中间文件,也就是我们说的动态链接库文件.so或者静态库文件.a,在windows下对应的则是.dll和.lib文件,该步骤将.o文件对应的.h找出来,并将这些.o文件链接成为.so或者.a文件。如果用命令行来一步步生成的话,对于大项目而言,这样的方法是不科学的,首先是每次都要检查文件的依赖关系,其次是每次手打的话,效率会很低,Makefile就是为了解决这样大项目的生成而存在的。
以下是近期实验室项目,需要用到的Makefile,第一次接触,特此记录。
一个C++工程下,各文件的依赖形式如上图所示,假定最后要生成的.so文件名为foreground_extraction.so,那么相应的Makefile如下:
<pre name="code" class="plain">foreground_extraction.so : main.o utility.o
</pre><pre name="code" class="plain">
gcc -fPIC -shared -o foreground_extraction.so main.o utility.o
main.o : main.cpp data_structure.h jni_call.h utility.h
gcc -fPIC -c -I /usr/lib/gcc/x86_64-redhat-linux/4.4.4/include main.cpp
utility.o : utility.cpp utility.h
gcc -fPIC -c utility.cpp
.PHONY : clean
clean:
rm foreground_extraction.so main.o utility.o
0 0
- 初探makefile
- 初探Makefile
- makeFile文件编写初探!!
- 深入浅出Android makefile(1)--初探
- 深入浅出Android makefile(1)--初探
- 深入浅出Android makefile(1)--初探
- 深入浅出Android makefile(1)--初探
- linux c/c++ 编程之-----makefile 初探
- 1-1-3 Makefile工程管理初探
- Makefile + SourceInsight的开发模式初探
- Linux设备驱动初探_多源文件Makefile
- 《linux程序设计学习笔记》之----初探makefile(一)
- 初探
- 初探vcIDE背后的秘密-为vc项目写makefile,实现自动独立编译
- Makefile
- Makefile
- makefile
- makefile
- 自学Java系列 笔记1 java的基本语法2
- 数字对象(NSNumber)常用的方法
- 倒推序列,如b[i]0 1 0(前面有几个数比b[i] 大)推a[i]2 1 3 ,树状数组 SPOJ 227 Ordering the Soldiers
- leetCode4.1.2(Longest Valid Parentheses)
- 五种排序算法
- 初探Makefile
- Spring学习(十)spring mvc入门
- 9-1
- 类的解剖(获取类的定义信息)
- LightOJ 1155 - Power Transmission【拆点网络流】
- c++ - dec2bin / bin2dec
- 跨出第一步
- UFT SPY模式
- buffer page和page cache