ar rcs lib库文件名.a 目标文件1 目标文件2 ... 目标文件n
r表示将.o的目标文件加入到静态库中;c表示创建静态库;s表示创建索引;创建的库文件名字前面建议加上前缀lib,即lib库文件名.a 。momo@anan:~/usr/dev/cc$ gcc -o ./obj/mysum.o -c ./func/mysum.c momo@anan:~/usr/dev/cc$ ls -trl ./obj/mysum.o -rw-rw-r-- 1 momo momo 1232 5月 2 23:19 ./obj/mysum.omomo@anan:~/usr/dev/cc$ ar rcs ./lib/libmysum_jingtai.a ./obj/mysum.omomo@anan:~/usr/dev/cc$ gcc -o ./bin/mysum_jingtai ./main/mymath.c -L./lib -lmysum_jingtaimomo@anan:~/usr/dev/cc$ ./bin/mysum_jingtai 请输入第一个数:1请输入第二个数:21+2=3
gcc -shared -fPIC -o lib库文件名.so 目标文件1 目标文件2 ... 目标文件n
-shared 表示使用共享库-fpic或者-fPIC表明创建产生独立目标代码(位置无关代码),具体应用取决于平台momo@anan:~/usr/dev/cc$ gcc -o ./obj/mysum.o -c ./func/mysum.c momo@anan:~/usr/dev/cc$ ls -trl ./obj/mysum.o -rw-rw-r-- 1 momo momo 1232 5月 2 23:41 ./obj/mysum.omomo@anan:~/usr/dev/cc$ gcc -shared -fpic -o ./lib/libmysum_dongtai.so ./obj/mysum.o momo@anan:~/usr/dev/cc$ gcc -o ./bin/mysum_dongtai ./main/mymath.c -L./lib -lmysum_dongtaimomo@anan:~/usr/dev/cc$ ./bin/mysum_dongtai
./bin/mysum_dongtai: error while loading shared libraries: libmysum_dongtai.so: cannot open shared object file: No such file or directory
第一种解决方式:将我们用到的动态库文件复制到/usr/lib目录下;
momo@anan:~/usr/dev/cc$ sudo cp ./lib/libmysum_dongtai.so /usr/lib[sudo] momo 的密码: momo@anan:~/usr/dev/cc$ ls -trl /usr/lib/libmysum_dongtai.so -rwxr-xr-x 1 root root 7648 5月 2 23:45 /usr/lib/libmysum_dongtai.somomo@anan:~/usr/dev/cc$ ./bin/mysum_dongtai 请输入第一个数:1请输入第二个数:2
1+2=3
第二种解决方式:创建临时环境变量,将我们的动态库所在目录存在该变量中
momo@anan:~/usr/dev/cc$ sudo cp ./lib/libmysum_dongtai.so /usr/lib[sudo] momo 的密码: momo@anan:~/usr/dev/cc$ ls -trl /usr/lib/libmysum_dongtai.so -rwxr-xr-x 1 root root 7648 5月 2 23:45 /usr/lib/libmysum_dongtai.somomo@anan:~/usr/dev/cc$ ./bin/mysum_dongtai 请输入第一个数:1请输入第二个数:2
1+2=3
