linux
windows
函数
spa
#include "xxxx.h"
二.什么是标准头文件?操作系统
书写c语言时,#include <stdio.h>其中stdio.h文件是标准头文件,标准头文件的保存目录(在linux系统中)是:/usr/local/include或/usr/include。code
三.将自定义函数名文件做为标准头文件使用的步骤blog
第一种方法:将头文件放在标准目录中编译器
第二种方法:在include语句中使用完整路径名io
#include"/xxxx/xxxx.h"编译
第三种方法告诉编译器去哪里找头文件
gcc -I./头文件所在目录 c文件 -c 目标文件名
四,共享目标文件
将.o目标文件放入一个共享目录的地方,编译时加上参数便可
gcc -I /目标文件目录 c源文件 /目标文件目录/目标文件 /目标文件目录/目标文件 -o 须要编译的目标文件
五.静态库
1.静态库是什么?
静态库中存储了由c文件编译后生成的目标文件(.o结尾),打包而造成的文件
静态库多为.a结尾文件,在linux操做系统中静态库文件的名字格式为libxxxx.a,系统静态库文件存放在/usr/local/lib 或 /usr/lib 或/usr/lib64/
使用nm命令可查看静态库文件内容
1.怎样建立静态库?
ar -rcs 静态库文件名 多个目标文件的名字
2.编译时怎么样调用静态库
gcc 要编译的c源文件名字 -l静态库名字 -o 目标文件名字
-l选项后面的名字必须与静态库名字的一部分匹配
上面的例子是调用在系统标准静态库目录下的静态库文件
下面的例子是调用自定义目录下的静态库文件
gcc 要编译的c源文件名字 -L存放静态库的目录名字 -l静态库名字 -o 目标文件名字
六.动态库
1.什么是动态库?
动态库文件的格式为:
xxxx.dll(windows操做系统)
xxxx.dll.a(windows操做系统)
libxxx.so(linux操做系统)
libxxxx.dylib(mac操做系统)
在程序运行时加载的库文件,与静态库的区别,静态库是在编译时就将代码组合到一块儿生成一个可执行文件,不须要相同的环境便可将可执行文件移植到其余机器使用,而动态库是在程序加载时动态载入目标文件,可执行文件与动态库文件必须同时存在,不可单独移植到其余机器。
2.动态库文件的建立:
首先建立目标文件
gcc -I头文件所在目录 -fPIC -c c源文件名字 -o 目标文件名字
-fPIC选项告诉编译器建立位置无关代码
建立动态库文件
gcc -shared 上一步生成的目标文件名字 -o 动态库文件的名字
运行程序时调用标准目录下的动态库,直接运行程序便可
调用自定义目录下的动态库文件的方法:
linux下首先设置变量指向自定义的动态库目录:
export LD_LIBRARY_PATCH=$LD_LIBRARY_PATCH:自定义的动态库目录