静态库
编写好c源文件,里面只有函数的实现。要调用的文件比如是main.c,在文件里声明c源文件里的库函数名。
1 首先 gcc -c hello.c 生成hello.o
2 ar crs libhello.a hello.o
3 gcc -o main main.c -L. -lhello -L后面跟着库的路径,-l后面跟着libxxx.a xxx的内容
-I(大写i)指定库函数在主函数调用的头文件的路径
动态库
1创建位置无关代码 gcc -fPIC -c hello.c 生成hello.o 其中选项为 I(大写i)
2 gcc -shared -o libhello.so.1 hello.o
3 创建软连接 ln -s libhello.so.1 libhello.so 将libhello.so指向libhello.so.1
4 gcc -o mycpp mycpp.c -L. -lhello
系统默认找共享库,想找静态库要加选项-static 静态库名
5 让程序运行时找到动态库的路径有两种方法:
1)把库考到/usr 或者/usr/lib 目录下。
2)LD_LIBRARY_PATH(lood library path)环境变量下加上库所在路径
export LD_LIBRARY_PATH=./ 等于号两边没有空格,让程序找到动态库在当前目录下
另外:运行时需要查看一个程序需要哪些库, 可以用命令ldd mycpp.