1.演示代码
add.cpp
int add(int a, int b){ return a + b;}main.cpp
#include<stdio.h>int add(int a, int b);int main(){ PRintf("%d/n", add(1,2)); return 0;}2.静态库
$ gcc -c -o add.o add.cpp$ ar -r libadd.a add.o$ gcc -o main -L. -ladd main.cpp$ ./main3.动态库
$ gcc -shared -fPIC -o libadd.so add.cpp$ gcc -o main -L. -ladd main.cpp$ ./main我对动态库的一个理解是: 第一次编译时需要libadd.so参与编译 而第一次编完后,如果main.cpp不改动,add.cpp改动,那么不需要重新编译整个main,只需要重新编译libadd.so,替换原来的libadd.so即可运行main。 4.备注 鉴于链接静态库和动态库的命令是一样的,系统会优先链接动态库。
新闻热点
疑难解答