1. 使用静态链接库时,只需-L指定库路径,-l指定库名,-I(大写i)指定头文件路径;
把1.c生成的1.o 打包成静态链接库:
ar rcs lib1.a 1.o
使用:
gcc main.o 2.o -I ./ -L . -l1 -o keven.out
//不加-L也可。
2.而使用动态链接库时,需要-L指定库路径==》在程序链接成可执行文件时使用;
还需-Wl,-rpath 再指定一次库路径==》让程序在执行时能加载到动态链接库。
这两个缺一不可。
//把1.c 提前制作成动态链接库 libmath.so:
gcc -fPIC 1.c -o 1.o
gcc -shared 1.o -o libmath.so
使用动态链接库:
gcc main.c 2.c -lmath -Wl,-rpath=. -L. -o ***.out