Makefile和GCC日常用法
来源:互联网 发布:可视化编程软件 知乎 编辑:程序博客网 时间:2024/04/30 12:14
GCC
-I、-L、-l
gcc -o hello hello.c -I /home/hello/include-L /home/hello/lib –lworld
(大写i) -I/home/hello/include:表示将/home/hello/include目录作为第一个寻找头文件的目录,寻找顺序:/home/hello/include--> /usr/include --> /usr/local/include
-L /home/hello/lib:表示将/home/hello/lib目录作为第一个寻找库文件的目录,寻找顺序:/home/hello/lib --> /lib --> /usr/lib --> /usr/local/lib
(小写l)-lworld表示在上面的lib的路径中寻找libworld.so动态库文件(如果gcc编译选项中加入了“-static”表示寻找libworld.a静态库文件)
静态库连接
ar rcs libhycu.a *.o
动态链接通俗解析
http://www.cnblogs.com/likwo/archive/2012/05/09/2492225.html
-o0 //不优化代码,编译器不会对代码进行重排
-fPIC -share //http://blog.sina.com.cn/s/blog_54f82cc201011op1.html
gcc -MM first.c
产生.h的依赖,输出first.o :first.c *.h
gcc -MD main.c
产生main.d文件,里面内容为:main.o:main.c
mkdep ${CFLAGS} ${SRCS}
产生.depend文件,里面内容时:main.o:main.c
Makefile
更多内容请看《Makefile详解》
$@、$^、$<
$@ 代表目标
$^ 代表所有的依赖对象
$< 代表第一个依赖对象
.c.o:
这句话的意思就是 %.o : %.c
也就是说,所有的.o文件,依赖于对应的.c文件
常用函数
src=$(wildcard *.c ./sub/*.c)
dir=$(notdir $(src))
obj=$(patsubst %.c,%.o,$(dir) )
wildcard把 指定目录 ./ 和 ./sub/ 下的所有后缀是c的文件全部展开。
notdir把展开的文件去除掉路径信息
patsubst把$(dir)中的变量符合后缀是.c的全部替换成.o
未完待续
- Makefile和GCC日常用法
- gcc、gdb、makefile 学习和用法
- gcc和makefile制作
- GCC/G++/MakeFile简单用法
- makefile的和gcc参数
- 关于gcc优化和makefile
- gcc使用和简要makefile
- gcc和makefile(一)
- gcc和makefile(二)
- Linux的gcc,makefile和autotools
- gcc的主要选项和makefile入门
- Linux下MAKEFILE写法和GCC参数
- GCC+GDB+Makefile学习和使用记录
- g++和gcc 的makefile 写法
- makefile文件和gcc g++ gdb编译
- gcc编译选项和makefile资源汇总
- GCC与GDB工具和makefile基础
- Linux下MAKEFILE写法和GCC参数
- CSS3 perspective-origin
- python中对象相等判断(is、==与__dict__的使用)
- Cockroach数据库初体验
- response request对象
- 【C】控制结构和语句
- Makefile和GCC日常用法
- 双十一卖的东西真的是一年中最便宜的吗?
- tiny4412开发板蜂鸣器驱动
- Unity3d常用快捷键
- codeforces 887B
- 抽象类(abstract class)和接口(Interface)的区别
- CS本科毕业生能拿到45万年薪?
- c primer pius 练习二
- ORACLE最基本的设置