gcc -I ./hellodir hello.c -o hello
其中-I参数指定头文件所在位置,位置可以在编译文件前,也可以在后面
-I 指定头文件所在目录位置
-c 只做预处理,编译,汇编。得到二进制文件
-g 编译时添加调试文件,用于gdb调试
-Wall 显示所有警告信息
-D 向程序中“动态”注册宏定义
-l 指定动态库库名
-L 指定动态库路径
28P-动态库和静态库理论对比
静态库在文件中静态展开,所以有多少文件就展开多少次,非常吃内存,100M展开100次,就是1G,但是这样的好处就是静态加载的速度快
使用动态库会将动态库加载到内存,10个文件也只需要加载一次,然后这些文件用到库的时候临时去加载,速度慢一些,但是很省内存
动态库和静态库各有优劣,根据实际情况合理选用即可。
29P-静态库制作
静态库名字以lib开头,以.a结尾
例如:libmylib.a
静态库生成指令
ar rcs libmylib.a file1.o
步骤一:
写好源代码[staticLib
步骤二:
编译源代码生成.o文件
步骤三:
制作静态库
ar rcs libname.a file1.o file2.o …
静态库的使用:
gcc test.c lib库名.a -o a.out